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

python实现语音识别

1. 首先安装依赖库

pip install playsound # 该库用于播放音频文件
pip install speech_recognition # 该库用于语音识别
pip install PocketSphinx # 语音识别模块中只有sphinx支持离线的,使用该模块需单独安装
pip install pyttsx3 # 该库用于将文本转换为语音播放
pip install comtypes # 该库可以从文本文件中获取输入转换为语音文件

2. 播放音频文件 

from playsound import playsound 
playsound('audio_files\cnhello.mp3')

3. 语音识别

默认只识别英文,如果需要支持中文,需要下载中文模型包,下载地址如下:

CMU Sphinx - Browse /Acoustic and Language Models at SourceForge.net 

下载完解压到sphinx安装路径下:

D:\install\Anaconda\Lib\site-packages\speech_recognition\pocketsphinx-data

 

import speech_recognition as sr
r = sr.Recognizer()
harvard = sr.AudioFile('audio_files\harvard.wav')
with harvard as source:
#     r.adjust_for_ambient_noise(source) # 消除环境背景音audio = r.record(source) # record()函数,将整个音频文件读入AudioData实例
print(type(audio))    
r.recognize_sphinx(audio) 

4. 通过麦克风输入并识别

import speech_recognition as sr
mic = sr.Microphone()
with mic as source:r.adjust_for_ambient_noise(source)audio = r.listen(source)r.recognize_sphinx(audio)

5. 文本转语音播放

import pyttsx3
engine = pyttsx3.init()
engine.say("hello world")
engine.say("你好")
engine.runAndWait()
engine.stop()

6. 文本转语音

# 文本转语音
from comtypes.client import CreateObject
from comtypes.gen import SpeechLibengine = CreateObject("SAPI.SpVoice")
stream = CreateObject('SAPI.SpFileStream')
infile = 'demo.txt'
outfile = 'demo_audio.wav'
stream.open(outfile, SpeechLib.SSFMCreateForWrite)
engine.AudioOutputStream = stream
f = open(infile, 'r', encoding='utf-8')
theText = f.read()
f.close()
engine.speak(theText)
stream.close()

7. 语音转文本(英文识别)

# 语音文件转文本文件
import speech_recognition as sr
r = sr.Recognizer()harvard = sr.AudioFile('demo_audio.wav')
with harvard as source:
#     r.adjust_for_ambient_noise(source)audio = r.record(source)r.recognize_sphinx(audio, language='en-US')

>>'hello everyone my name is bob'

8. 语音转文本(中文识别)

# 语音文件转文本文件
import speech_recognition as sr
r = sr.Recognizer()harvard = sr.AudioFile('demo_audio.wav')
with harvard as source:
#     r.adjust_for_ambient_noise(source)audio = r.record(source)r.recognize_sphinx(audio, language='zh-CN')

 >> '好好 学习 天天 向上'

参考:

python实现语音识别功能

从0开始语音识别

http://www.lryc.cn/news/154642.html

相关文章:

  • java八股文面试[多线程]——线程的状态
  • Go学习[合集]
  • 代码随想录算法训练营第42天 | ● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集
  • 解决DNS服务器未响应错误的方法
  • SpringBoot的HandlerInterceptor拦截器使用方法
  • java 常用 jar 包
  • C#面试十问
  • Day 41 动态规划part03 : 343. 整数拆分 96.不同的二叉搜索树
  • 四轴飞行器的电池研究(MatlabSimulink仿真)
  • 准备HarmonyOS开发环境
  • Java 面试 - Redis
  • 【Go 基础篇】Go语言结构体之间的转换与映射
  • Java 多线程系列Ⅳ(单例模式+阻塞式队列+定时器+线程池)
  • 将 ordinals 与 比特币智能合约集成 : 第 1 部分
  • 【USRP】集成化仪器系列1 :信号源,基于labview实现
  • 串行协议——USB驱动[基础]
  • 健康舒适的超满意照明体验!SUKER书客SKY护眼台灯测评
  • PID 算法
  • 13.Redis 事务
  • 李宏毅机器学习课程笔记(更新ing)
  • SIP mini 对讲终端,带sip热点功能
  • PHP中根据出生年月日计算年龄的封装函数
  • Linux巡检脚本
  • SQLite 3.43.0 发布,又有啥新功能?
  • 百度自研高性能ANN检索引擎,开源了
  • golang遍历map的方法
  • 如何让Android平台像网络摄像机一样实现GB28181前端设备接入?
  • 文盘Rust -- 生命周期问题引发的 static hashmap 锁 | 京东云技术团队
  • SpringMVC入门篇
  • 面经:安卓学习笔记