概述
近幾年由於AI的迅速發展,語音相關的自然語言處理NLP專案也變多了,新的技術也越來越成熟,其中TTS(語音生成)和ASR(語音識別)是NLP中非常重要的環節。
今天我們介紹一個開源的ASR專案vosk,以及vosk的簡單應用方法。
Vosk是開源的語音識別工具包。Vosk支援的事情包括:
1. 支援十九種語言 - 中文,英語,印度英語,德語,法語,西班牙語,葡萄牙語,俄語,土耳其語,越南語,義大利語,荷蘭人,加泰羅尼亞語,阿拉伯, 希臘語, 波斯語, 菲律賓語,烏克蘭語, 哈薩克語。
2. 移動裝置上離線工作-Raspberry Pi,Android,iOS。
3. 使用簡單的 pip3 install vosk 安裝。
4. 每種語言的手提式模型只有是50Mb, 但還有更大的伺服器模型可用。
5. 提供流媒體API,以提供最佳使用者體驗(與流行的語音識別python包不同)。
6. 還有用於不同程式語言的包裝器-java / csharp / javascript等。
7. 可以快速重新配置詞彙以實現最佳準確性。
8. 支援說話人識別。
環境
centos:CentOS release 7.0 (Final)或以上版本
VOSK伺服器
vosk伺服器的部署非常簡單,有釋出好的docker映象可以直接使用。
使用docker啟動VOSK伺服器,選擇中文模型kaldi-cn。
docker run -d -p 2700:2700 alphacep/kaldi-cn:latest
測試
客戶端的連線支援多種方式,包括grpc、mqtt、webrtc、websocket等,我們可以通過git上的原始碼查詢到合適的樣例。
下載vosk-server原始碼
git clone https://github.com/alphacep/vosk-server cd vosk-server/websocket ./test.py test1.wav
注意事項:語音檔案test1.wav的格式必須8khz 16bit mono PCM(8000取樣率,16位取樣精度,單聲道,pcm)。
可以在螢幕上看到伺服器返回的識別結果,結果是json格式。
{ "result" : [{ "conf" : 0.993990, "end" : 0.510000, "start" : 0.090000, "word" : "語音" }, { "conf" : 0.936422, "end" : 1.080000, "start" : 0.510000, "word" : "測試" }, { "conf" : 0.821353, "end" : 1.950000, "start" : 1.350000, "word" : "天天" }, { "conf" : 0.866125, "end" : 2.190000, "start" : 1.950000, "word" : "是" }, { "conf" : 0.657369, "end" : 2.400000, "start" : 2.190000, "word" : "二" }, { "conf" : 0.657369, "end" : 2.610000, "start" : 2.400000, "word" : "零" }, { "conf" : 0.651791, "end" : 2.820000, "start" : 2.610000, "word" : "二" }, { "conf" : 0.994422, "end" : 3.180000, "start" : 2.820000, "word" : "一年" }, { "conf" : 1.000000, "end" : 3.600000, "start" : 3.180000, "word" : "八月" }, { "conf" : 0.985209, "end" : 3.930000, "start" : 3.600000, "word" : "二十" }, { "conf" : 0.985209, "end" : 4.410000, "start" : 3.930000, "word" : "五號" }], "text" : "語音 測試 天天 是 二 零 二 一年 八月 二十 五號" }
總結
從vosk中文庫的識別結果看,還有不少的問題存在,包括識別率,分詞,分段等等,和目前市面上的商業ASR引擎還是有差距的。
當然,vosk的識別庫模型也支援自定義和優化,有興趣的同學可以去官網深入的瞭解一下。
vosk官網:https://alphacephei.com
OK,今天我們對vosk的介紹到此結束。
空空如常
求真得真
開源ASR伺服器vosk概述近幾年由於AI的迅速發展,語音相關的自然語言處理NLP專案也變多了,新的技術也越來越成熟,其中TTS(語音生成)和ASR(語音識別)是NLP中非常重要的環節。今天我們介紹一個開源的ASR專案vosk,以及vosk的簡單應用方法。Vosk是開源的語音識別工具包。Vosk支援的事情包括:1.支援十九種語言 - 中文,英語,印度英語,德語,法語,西班牙語,葡萄牙語,俄語,土耳其語,越南語,義大利語,荷蘭人,加泰羅尼亞語,阿拉伯, 希臘語, 波斯語, 菲律賓語,烏克蘭語, 哈薩克語。2.移動裝置上離線工作-Raspberry Pi,Android,iOS。3.使用簡單的 pip3 install vosk 安裝。4.每種語言的手提式模型只有是50Mb, 但還有更大的伺服器模型可用。5.提供流媒體API,以提供最佳使用者體驗(與流行的語音識別python包不同)。6.還有用於不同程式語言的包裝器-java / csharp / javascript等。7.可以快速重新配置詞彙以實現最佳準確性。8.支援說話人識別。
環境centos:CentOS release 7.0 (Final)或以上版本
VOSK伺服器vosk伺服器的部署非常簡單,有釋出好的docker映象可以直接使用。使用docker啟動VOSK伺服器,選擇中文模型kaldi-cn。docker run -d -p 2700:2700 alphacep/kaldi-cn:latest
測試客戶端的連線支援多種方式,包括grpc、mqtt、webrtc、websocket等,我們可以通過git上的原始碼查詢到合適的樣例。下載vosk-server原始碼git clone https://github.com/alphacep/vosk-servercd vosk-server/websocket./test.py test1.wav
注意事項:語音檔案test1.wav的格式必須8khz 16bit mono PCM(8000取樣率,16位取樣精度,單聲道,pcm)。
可以在螢幕上看到伺服器返回的識別結果,結果是json格式。{ "result" : [{ "conf" : 0.993990, "end" : 0.510000, "start" : 0.090000, "word" : "語音" }, { "conf" : 0.936422, "end" : 1.080000, "start" : 0.510000, "word" : "測試" }, { "conf" : 0.821353, "end" : 1.950000, "start" : 1.350000, "word" : "天天" }, { "conf" : 0.866125, "end" : 2.190000, "start" : 1.950000, "word" : "是" }, { "conf" : 0.657369, "end" : 2.400000, "start" : 2.190000, "word" : "二" }, { "conf" : 0.657369, "end" : 2.610000, "start" : 2.400000, "word" : "零" }, { "conf" : 0.651791, "end" : 2.820000, "start" : 2.610000, "word" : "二" }, { "conf" : 0.994422, "end" : 3.180000, "start" : 2.820000, "word" : "一年" }, { "conf" : 1.000000, "end" : 3.600000, "start" : 3.180000, "word" : "八月" }, { "conf" : 0.985209, "end" : 3.930000, "start" : 3.600000, "word" : "二十" }, { "conf" : 0.985209, "end" : 4.410000, "start" : 3.930000, "word" : "五號" }], "text" : "語音 測試 天天 是 二 零 二 一年 八月 二十 五號"}
總結從vosk中文庫的識別結果看,還有不少的問題存在,包括識別率,分詞,分段等等,和目前市面上的商業ASR引擎還是有差距的。當然,vosk的識別庫模型也支援自定義和優化,有興趣的同學可以去官網深入的瞭解一下。vosk官網:https://alphacephei.comOK,今天我們對vosk的介紹到此結束。
空空如常求真得真