概述

近幾年由於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的介紹到此結束。
空空如常求真得真