臺灣深度大師

TW Deep Master
https://interactionx.pse.is/interactionxFB | https://interactionx.pse.is/interactionx

想整合自然語言處理或語音識別相關模型混搭自己的應用,卻苦於無資源或不知從何處動手搭建相關測試?

TW Deep Master (臺灣深度大師) 是將Natural Language Processing (自然語言處理)Speech Recognition (語音識別)的SOTA以繁體中文為基礎做迭代,模組化語音去噪分離識別聲紋識別及自然語言處理的中文機器閱讀理解文本分類相似度命名實體識別糾錯摘要等各種演算法提供 WEB API 調用;希望通過私有化部署並做到領域客製化,能根據需求創建多個應用,滿足更多想將AI落地或商業化的開發者專注在自己的研究目標與應用,打造出自己的AI語音或自然語言產品應用並落地。

御守臺灣・科技抗疫提高聲紋辨識正確率 更添防疫新利器

那些自然語言處理 (Natural Language Processing, NLP) 踩的坑
那些語音處理 (Speech Processing) 踩的坑

curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), "input_wav":input_wav(list)}' \
'https://api.twman.org/SpeechRecognition'


  • token(str):www.interactionx.co

  • model_type(str):"asr_alpha"、"asr_beta"、"asr_omega"

  • input_wav(list):測試音檔格式需為 16kHz、1 channel 的 wav,讀取方式參照 request_test_SpeechRecognition.py

  • response 為 json 格式。


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), \
"enroll_list":enroll_list(dict), "test_wav":test_wav(list)}' \
'https://api.twman.org/SpeakerRecognition'


  • token(str):www.interactionx.co

  • model_type(str):"sincnet_plda"

  • enroll_list(dict):格式為 {[說話人名稱]_[編號]: 音檔},需至少包含兩個說話者並各自含五個音檔以上,音檔格式需為 16kHz、1 channel 的 wav (讀取方法同 SpeechRecognition)

  • test_wav(list):測試音檔格式需為 16kHz、1 channel 的 wav (讀取方法同 SpeechRecognition)

  • response 為 json 格式。

  • 參照 request_test_SpeakerRecognition.py


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), "input_wav":input_wav(list)}' \
'https://api.twman.org/AudioDenoise'


  • token(str):www.interactionx.co

  • model_type(str):"Conv-denoiser"、"Fair-denoiser"

  • input_wav(str):輸入音檔格式需為 16kHz、1 channel 的 wav (讀取方法同 SpeechRecognition)

  • response 為 json 格式,回傳的去噪後聲音需使用以下方法存出:

  • # In Python

  • from scipy.io import wavfile

  • import numpy as np


  • api_output = response.json().get('output')

  • wavfile.write(路徑+檔名, 16000, np.array(api_output).astype(np.int16))


  • 詳情可參照 request_test_AudioDenoise.py


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), "input_wav":input_wav(list)}' \
'https://api.twman.org/SpeechSeparation'


  • token(str):www.interactionx.co

  • model_type(str):"dptnet"、"sudormrf"

  • input_wav(str):輸入音檔格式需為 16kHz、1 channel 的 wav (讀取方法同 SpeechRecognition)

  • response 為 json 格式,回傳的去噪後聲音需使用以下方法存出:

  • # In Python

  • from scipy.io import wavfile

  • import numpy as np


  • sep1, sep2 = response.json().get('output')

  • wavfile.write(路徑+檔名1, 16000, np.array(sep1).astype(np.int16))

  • wavfile.write(路徑+檔名2, 16000, np.array(sep2).astype(np.int16))

  • 詳情可參照 request_test_SpeechSeparation.py

NLP


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), "context":context(str), "question":question(str)}' \
'https://api.twman.org/QuestionAnswering'


  • token(str):www.interactionx.co

  • model_type(str):"bert_base_drcd"

  • context(str):輸入的文章,需包含問題的答案才可正確作答。

  • question(str):輸入的問題,針對輸入文章內容的提問。

  • 文章與問題的長度總和需小於 512。

  • response 為 json 格式。

  • 詳情可參照 request_test_QuestionAnswering.py


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "context_ls":[context1(str), context2(str), ...], "question":question(str)}' \
'https://api.twman.org/QuestionAnsweringPlus'


  • token(str):www.interactionx.co

  • context_ls(str):輸入的文章列表,其中一篇文章需包含問題的答案才可正確作答。

  • question(str):輸入的問題,針對輸入文章內容的提問。

  • 任一文章與問題的長度總和需小於 512,若超過長度文章會被截斷。

  • response 為 json 格式。

  • 詳情可參照 request_test_QuestionAnsweringPlus.py


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), "input_text":input_text(str)}' \
'https://api.twman.org/NamedEntityRecognition'


  • token(str):www.interactionx.co

  • model_type(str):"bert_base_msra"

  • input_text(str):要預測是否包含實體的語句,長度須小於 512。

  • response 為 json 格式。

  • 詳情可參照 request_test_NamedEntityRecognition.py


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), "input_text":input_text(str)}' \
'https://api.twman.org/TextClassification'


  • token(str):www.interactionx.co

  • model_type(str):"bert_lstm_service"

  • input_text(str):要預測類別的語句,長度須小於 64。

  • 類別包含:"商業洽談", "課程銷售", "債務告警", "房產銷售", "快遞通知", "金融推銷", "獵人頭", "保險推銷", "貸款銷售", "外賣通知", "聊天", "電信客服"

  • response 為 json 格式。

  • 詳情可參照 request_test_TextClassification.py


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), "input_text_1":input_text_1(str), \
"input_text_2":input_text_2(str)}' \
'https://api.twman.org/TextSimilarity'


  • token(str):www.interactionx.co

  • model_type(str):"albert"

  • input_text_1(str):語句1,模型會計算此句與 input_text_2 的相似度。

  • input_text_2(str):語句2,模型會計算此句與 input_text_1 的相似度。

  • 輸入 text1 與 text2 長度相加須小於 512。

  • response 為 json 格式。

  • 詳情可參照 request_test_TextSimilarity.py


curl -i -X POST \
-H "Content-Type:application/json" \
-d \
'{"token":www.interactionx.co, "model_type":model_type(str), "input_text":input_text(str)}' \
'https://api.twman.org/TextCorrection'


  • token(str):www.interactionx.co

  • model_type(str):"bert"

  • input_text(str):要執行糾錯的語句,長度須小於 64。

  • response 為 json 格式。

  • 詳情可參照 request_test_TextCorrection.py