Vosk官网:Vosk 离线语音识别
Vosk是言语识别工具包。Vosk最好的事情是:
- 支持二十+种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越南语,意大利语,荷兰人,加泰罗尼亚语,阿拉伯, 希腊语, 波斯语, 菲律宾语,乌克兰语, 哈萨克语, 瑞典语, 日语, 世界语, 印地语, 捷克语, 波兰语, 乌兹别克语, 韩国语, 塔吉克语
- 移动设备上脱机工作-Raspberry Pi,Android,iOS
- 使用简单的 pip3 install vosk 安装
- 每种语言的手提式模型只有是50Mb, 但还有更大的服务器模型可用
- 提供流媒体API,以提供最佳用户体验(与流行的语音识别python包不同)
- 还有用于不同编程语言的包装器-java / csharp / javascript等
- 可以快速重新配置词汇以实现最佳准确性
- 支持说话人识别
Vosk说:我们有一个非常大的微信群,所以它仅受邀请。 发邮件给我们加入小组,并提供一些有关您自己的信息。
选择和下载vosk语音模型
模型选择地址:VOSK Models
Chinese | ||||
vosk-model-small-cn-0.22 | 42M | 23.54 (SpeechIO-02) 38.29 (SpeechIO-06) 17.15 (THCHS) | Lightweight model for Android and RPi | Apache 2.0 |
vosk-model-cn-0.22 | 1.3G | 13.98 (SpeechIO-02) 27.30 (SpeechIO-06) 7.43 (THCHS) | Big generic Chinese model for server processing | Apache 2.0 |
Chinese Other | ||||
vosk-model-cn-kaldi-multicn-0.15 | 1.5G | 17.44 (SpeechIO-02) 9.56 (THCHS) | Original Wideband Kaldi multi-cn model from Kaldi with Vosk LM | Apache 2.0 |
考虑到要在树莓派2上部署,选择了42M大小的版本,下载模型并解压到一个目录。
wget https://alphacephei.com/vosk/models/vosk-model-small-cn-0.22.zip
unzip vosk-model-small-cn-0.22.zip
解压后的模型目录为:/home/skywalk/work/speech/vosk-model-small-cn-0.22
进行中文识别
import vosk
from vosk import Model, KaldiRecognizer
import wave
# 加载模型
model_path = "path/to/vosk-model" # 替换为你的模型路径
model = Model(model_path)
# 初始化识别器,设置音频的采样率为16000Hz
rec = KaldiRecognizer(model, 16000)
# 打开音频文件
with wave.open('path/to/your/audio.wav', 'rb') as wave_file:
# 循环读取音频帧
while True:
data = wave_file.readframes(4000)
if len(data) == 0:
break
if rec.AcceptWaveform(data):
print(rec.Result()) # 获取部分识别结果
# 获取最终结果
final_result = rec.FinalResult()
if final_result != '':
print("Final Result:", final_result)
执行结果:
/vosk-model-small-cn-0.22/graph/HCLr.fst ./vosk-model-small-cn-0.22/graph/Gr.fst
LOG (VoskAPI:ReadDataFiles():model.cc:303) Loading winfo ./vosk-model-small-cn-0.22/graph/phones/word_boundary.int
Final Result: {
"text" : "我 认为 跑步 最 重要 的 就是 给 我 带来 了 身体健康"
}
当然运行程序前,不要忘记安装vosk包:
pip install vosk