使用Python和Vosk库实现语音识别

使用Python和Vosk库实现语音识别

在人工智能和机器学习领域,语音识别技术正变得越来越重要。Python作为一种强大的编程语言,拥有丰富的库和框架,可以方便地实现语音识别功能。今天,我们将介绍如何使用Python中的SpeechRecognition库和Vosk模型来实现语音识别。

一、SpeechRecognition库的安装

SpeechRecognition库是Python中一个简单易用的语音识别模块,支持多种语音识别服务,包括Google Speech Recognition、CMU Sphinx等。首先,我们需要安装这个库:

bash 复制代码
pip install SpeechRecognition

如果在安装过程中遇到问题,可以尝试强制安装:

bash 复制代码
pip install --force-reinstall SpeechRecognition

二、导入库

安装完成后,我们可以导入库并开始使用:

python 复制代码
import speech_recognition as sr
r = sr.Recognizer()

需要注意的是,虽然安装时使用的是SpeechRecognition,但在导入时使用的是speech_recognition

三、识别麦克风输入的语音

如果你想要识别通过麦克风实时输入的语音,可以使用以下代码:

python 复制代码
# 麦克风录音
mic = sr.Microphone()
with mic as source:
    print("请说话...")
    r.adjust_for_ambient_noise(source)
    audioData = r.listen(source)

四、识别语音文件

如果你已经有了一个语音文件,比如MP3格式的文件,你可以直接使用SpeechRecognition库来识别它:

python 复制代码
# 识别语音文件
audioFile = sr.AudioFile("your_audio_file.mp3")
with audioFile as source:
   audioData = r.record(source)

请确保语音文件与你的主程序在同一个文件夹中,或者提供正确的文件路径。

五、安装Vosk库

Vosk是一个开源的语音识别工具,支持多种语言,并且可以离线工作。安装Vosk库:

bash 复制代码
pip install vosk

六、下载和使用Vosk模型

虽然安装了Vosk库,但我们需要单独下载Vosk的语音模型。访问VOSK Models网站,下载适合你的语言的模型。对于中文,下载中文语音模型,并将其解压到主程序文件夹下,将文件夹重命名为"model"。
模型下载连接

七、语音识别

使用Vosk模型进行语音识别:

python 复制代码
said = r.recognize_vosk(audioData)
print("你说的话是:", formulateResult(said))

这里的formulateResult函数用于处理识别结果,提取出识别的文本。

八、运行结果

使用上述代码,你可以将语音文件中的语音转换为文本。例如,使用"xxx.mp3"文件进行识别进行测试,都能得到不错的识别效果。

九、完整demo

python 复制代码
import speech_recognition as sr
import vosk
import pyaudio

r = sr.Recognizer()


# 直接录音
mic = sr.Microphone()
with mic as source:
    print("请说话...")
    r.adjust_for_ambient_noise(source)
    audioData = r.listen(source)


# # 使用语音文件
# audioFile = sr.AudioFile("xxxx.mp3")
# with audioFile as source:
#     audioData = r.record(source)


def formulateResult(resu):
    start = resu.index('"', resu.index('"', resu.index('"') + 1) + 1) + 1
    end = resu.index('"', start)
    return resu[start:end]

said = r.recognize_vosk(audioData)
print("you said:", formulateResult(said))
相关推荐
豆浆whisky30 分钟前
Go并发模式选择指南:找到最适合你项目的并发方案|Go语言进阶(19)
开发语言·后端·golang
草莓熊Lotso32 分钟前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
胖咕噜的稞达鸭1 小时前
自定义shell命令行解释器自制
java·开发语言
草莓熊Lotso1 小时前
Git 分支管理:从基础操作到协作流程(本地篇)
大数据·服务器·开发语言·c++·人工智能·git·sql
报错小能手1 小时前
C++异常处理 终极及总结
开发语言·c++
u***32434 小时前
使用python进行PostgreSQL 数据库连接
数据库·python·postgresql
青瓷程序设计7 小时前
动物识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
tobebetter95277 小时前
How to manage python versions on windows
开发语言·windows·python
F_D_Z7 小时前
数据集相关类代码回顾理解 | sns.distplot\%matplotlib inline\sns.scatterplot
python·深度学习·matplotlib
9***P3348 小时前
PHP代码覆盖率
开发语言·php·代码覆盖率