Python实现语音识别vosk的示例代码

 更新时间:2023年12月13日 11:21:09   作者:爱看书的小沐  
Vosk是一个功能强大且易于使用的语音识别工具包,它提供了Python绑定,使得在Python中使用Vosk变得非常方便,本文主要介绍了Python实现语音识别vosk的示例代码,具有一定的参考价值,感兴趣的可以了解一下

1、简介

https://alphacephei.com/vosk/index.zh.html

Vosk 是一个语音识别工具包。

1.1 vosk简介

  • 支持二十+种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越南语,意大利语,荷兰人,加泰罗尼亚语,阿拉伯, 希腊语, 波斯语, 菲律宾语,乌克兰语, 哈萨克语, 瑞典语, 日语, 世界语, 印地语, 捷克语, 波兰语, 乌兹别克语, 韩国语
  • 移动设备上脱机工作-Raspberry Pi,Android,iOS
  • 使用简单的 pip3 install vosk 安装
  • 每种语言的手提式模型只有是50Mb, 但还有更大的服务器模型可用
  • 提供流媒体API,以提供最佳用户体验(与流行的语音识别python包不同)
  • 还有用于不同编程语言的包装器-java / csharp / javascript等
  • 可以快速重新配置词汇以实现最佳准确性
  • 支持说话人识别

1.2 vosk模型

https://alphacephei.com/vosk/models

有两种类型的模型 - 大模型和小模型,非常适合 移动应用程序上的一些有限任务。它们可以在智能手机上运行, 树莓派的。还建议将它们用于桌面应用程序。小 模型的大小通常约为 50Mb,需要大约 300Mb 的内存 在运行时。大模型用于 服务器。大型型号需要高达 16Gb 的内存,因为它们应用了先进的 人工智能算法。

在这里插入图片描述

# 下载模型文件:
wget -c https://alphacephei.com/vosk/models/vosk-model-small-cn-0.22.zip
wget -c https://alphacephei.com/vosk/models/vosk-model-cn-0.15.zip
wget -c https://alphacephei.com/vosk/models/vosk-model-cn-kaldi-multicn-0.15.zip

1.3 vosk服务

一个基于Vosk-API的非常简单的服务器。
不同的协议有四种实现 - websocket、grpc、mqtt、webrtc。
启动服务器:

#获取docker镜像:
docker pull alphacep/kaldi-cn:latest
#启动服务:
docker run -d -p 2700:2700 alphacep/kaldi-cn:latest

若要测试服务器,请运行示例脚本:

git clone https://github.com/alphacep/vosk-server
cd vosk-server/websocket
./test.py test.wav

使用麦克风进行测试,您需要安装 sounddevice pip 包:

pip3 install sounddevice

要使用麦克风进行测试,请运行:

./test_microphone.py -u ws://localhost:2700

使用docker方式启动服务,比较简单,但下载docker包比较耗时,如果已经下载好vosk-server代码及对应的模型文件,可以直接通过python代码启动vosk-server提供asr服务。

#1、下载vosk-server代码
git clone https://github.com/alphacep/vosk-server
#2、下载模型文件
wget -c https://alphacephei.com/vosk/models/vosk-model-cn-0.15.zip
#3、启动vosk服务
python asr_server.py vosk-model-cn-0.15

2、安装

确保您拥有最新的 pip 和 python3 版本:

Python版本:3.5-3.9
pip 版本:20.3 及更高版本。

pip3 install vosk
# pip3 install vosk -i https://pypi.doubanio.com/simple
# pip3 install https://github.com/alphacep/vosk-api/releases/download/v0.3.42/vosk-0.3.42-py3-none-linux_riscv64.whl

在这里插入图片描述

python3 --version
pip3 --version
pip3 -v install vosk

# 验证ffmpeg是否已安装,调用命令行(windows+R输入cmd)/ Ubuntu终端
$ ffmpeg –version

在这里插入图片描述

3、测试

3.1 命令行测试

vosk-transcriber -i test.mp4 -o test.txt
vosk-transcriber -i test.mp4 -t srt -o test.srt
vosk-transcriber -l fr -i test.m4a -t srt -o test.srt
vosk-transcriber --list-languages

# windows 
$ cd xxx/xxx
 
# 查看help命令
$ vosk-transcriber -h
 
# 列举当前的语言
$ vosk-transcriber --list-languages
 
# 方式一 :中文语音转汉字
$ vosk-transcriber -i xxx.mp3 -o xxx.txt -l cn  
 
# 方式二 :中文语音转汉字, 也可以去网站下载模型后直接指定模型路径
$ vosk-transcriber -i xxx.mp3 -o xxx.txt -m 解压后的文件夹路径

在这里插入图片描述

在这里插入图片描述

3.2 代码测试

若要运行 python 示例,请克隆 vosk-api 并运行以下命令:

git clone https://github.com/alphacep/vosk-api
cd vosk-api/python/example
python3 ./test_simple.py test.wav

在这里插入图片描述

在这里插入图片描述

使用您自己的音频文件时,请确保其格式正确 - PCM 16kHz 16bit 单声道。否则,如果您安装了 ffmpeg,则可以使用 ,它为您进行转换。

到此这篇关于Python实现语音识别vosk的示例代码的文章就介绍到这了,更多相关Python 语音识别vosk内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Word实现批量替换文本并生成副本

    Python Word实现批量替换文本并生成副本

    这篇文章主要为大家详细介绍了Python Word如何实现批量替换文本并生成副本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10
  • Python截图的五个方法实例总结

    Python截图的五个方法实例总结

    学习一门语言最好的方法便是实践,想要拿Python写一个截图工具,下面这篇文章主要给大家介绍了关于Python截图的五个方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • python冒泡排序算法的实现代码

    python冒泡排序算法的实现代码

    这篇文章主要介绍了python冒泡排序算法的实现代码,大家参考使用
    2013-11-11
  • Python3中的f-Strings增强版字符串格式化方法

    Python3中的f-Strings增强版字符串格式化方法

    这篇文章主要介绍了Python3中的f-Strings增强版字符串格式化方法,看完本文你将学习到如何以及为什么使用f-strings。对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • pyqt5 实现多窗口跳转的方法

    pyqt5 实现多窗口跳转的方法

    今天小编就为大家分享一篇pyqt5 实现多窗口跳转的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python一行代码实现打开各种类型的文件

    Python一行代码实现打开各种类型的文件

    在处理大量文件时,手动一个个打开是不是很麻烦,这时候,Python的os.startfile()就是你的救星啦,本文我们就来看看如何一行代码打开各种类型的文件吧
    2024-12-12
  • python脚本使用阿里云slb对恶意攻击进行封堵的实现

    python脚本使用阿里云slb对恶意攻击进行封堵的实现

    这篇文章主要介绍了python脚本使用阿里云slb对恶意攻击进行封堵的实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python日期格式和字符串格式相互转换的方法

    Python日期格式和字符串格式相互转换的方法

    这篇文章主要介绍了Python日期格式和字符串格式相互转换的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Python定义空函数的6种方法小结

    Python定义空函数的6种方法小结

    本文主要介绍了Python中定义空函数的6种方法,包括注释、pass、return、Ellipsis等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • python实现根据主机名字获得所有ip地址的方法

    python实现根据主机名字获得所有ip地址的方法

    这篇文章主要介绍了python实现根据主机名字获得所有ip地址的方法,涉及Python解析IP地址的相关技巧,需要的朋友可以参考下
    2015-06-06

最新评论