当前位置: 首页 > news >正文

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

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

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

一、SpeechRecognition库的安装

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

pip install SpeechRecognition

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

pip install --force-reinstall SpeechRecognition

二、导入库

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

import speech_recognition as sr
r = sr.Recognizer()

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

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

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

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

四、识别语音文件

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

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

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

五、安装Vosk库

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

pip install vosk

六、下载和使用Vosk模型

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

七、语音识别

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

said = r.recognize_vosk(audioData)
print("你说的话是:", formulateResult(said))

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

八、运行结果

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

九、完整demo

import speech_recognition as sr
import vosk
import pyaudior = 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) + 1end = resu.index('"', start)return resu[start:end]said = r.recognize_vosk(audioData)
print("you said:", formulateResult(said))
http://www.lryc.cn/news/477518.html

相关文章:

  • stm32使用串口的轮询模式,实现数据的收发
  • 105. UE5 GAS RPG 搭建主菜单
  • 基于 JAVASSM(Java + Spring + Spring MVC + MyBatis)框架开发一个医院挂号系统
  • Golang | Leetcode Golang题解之第540题有序数组中的单一元素
  • 影刀RPA实战:嵌入python,如虎添翼
  • es 数据清理delete_by_query
  • 【每日 C/C++ 问题】
  • stm32学习4
  • Midjourney国内直登
  • 【双目视觉标定】——3面结构光相机标定实践(获取相机内参)~未完待续
  • Python常用脚本集锦
  • MacBook 如何设置打开json格式文件的默认程序是vs code
  • 如何在 Spring Boot 中实现多数据源的事务管理?
  • SQL 常用更新操作
  • Android camera2
  • nginx监控指标有哪些
  • 我谈正态分布——正态偏态
  • 如何使用uniswap v2 获取两个代币的交易对池子
  • CSS中常见的两列布局、三列布局、百分比和多行多列布局!
  • GaussDB Ustore存储引擎解读
  • JAVA基础:数组 (习题笔记)
  • VMWARE ESXI VMFS阵列故障 服务器数据恢复
  • 实时金融股票数据API接口websocket接入方法
  • 机器学习与成像技术
  • 【系统架构设计师】预测试卷一:综合知识(75道选择题)
  • 【addRepository 在tomcat 8和tomcat 9的支持情况】
  • 2024网鼎杯web1+re2 wp
  • Python 自动化运维:安全与合规最佳实践
  • I2S、PDM、PCM、TDM、DSM、DCODEC、VAD、SPDIF
  • 关于我的编程语言——C/C++——第四篇(深入1)