开源ASR服务器vosk

时间:2024-02-19 21:31:14

 

概述

近几年由于AI的迅速发展,语音相关的自然语言处理NLP项目也变多了,新的技术也越来越成熟,其中TTS(语音生成)和ASR(语音识别)是NLP中非常重要的环节。

今天我们介绍一个开源的ASR项目vosk,以及vosk的简单应用方法。

Vosk是开源的语音识别工具包。Vosk支持的事情包括:

1.      支持十九种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越南语,意大利语,荷兰人,加泰罗尼亚语,阿拉伯, 希腊语, 波斯语, 菲律宾语,乌克兰语, 哈萨克语。

2.      移动设备上脱机工作-Raspberry PiAndroidiOS

3.      使用简单的 pip3 install vosk 安装。

4.      每种语言的手提式模型只有是50Mb, 但还有更大的服务器模型可用。

5.      提供流媒体API,以提供最佳用户体验(与流行的语音识别python包不同)。

6.      还有用于不同编程语言的包装器-java / csharp / javascript等。

7.      可以快速重新配置词汇以实现最佳准确性。

8.      支持说话人识别。

 

环境

centosCentOS release 7.0 (Final)或以上版本

 

VOSK服务器

vosk服务器的部署非常简单,有发布好的docker镜像可以直接使用。

使用docker启动VOSK服务器,选择中文模型kaldi-cn

docker run -d -p 2700:2700 alphacep/kaldi-cn:latest

 

测试

客户端的连接支持多种方式,包括grpcmqttwebrtcwebsocket等,我们可以通过git上的源代码查找到合适的样例。

下载vosk-server源代码

git clone https://github.com/alphacep/vosk-server

cd vosk-server/websocket

./test.py test1.wav

 

注意事项:语音文件test1.wav的格式必须8khz 16bit mono PCM8000采样率,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的介绍到此结束。
空空如常求真得真