python语音识别 文本转换为语音
使用pyttsx3
pyttsx3 是一个流行的 python 第三方库,用于实现文本到语音(tts)的转换。这个库支持多种操作系统,包括 windows、linux 和 macos,并且可以在没有互联网连接的情况下工作,因为它使用的是计算机上安装的本地语音引擎。
跨平台:可以在不同的操作系统上运行。
离线工作:不依赖于互联网连接。
多种语音和语言:支持多种语音和语言选项。
自定义设置:允许用户调整语速、音量和语调等参数。
简单易用:具有直观的 api,易于集成和使用。
安装:
pip3 install pyttsx3 -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
代码:
import pyttsx3 as pyttsx
engine = pyttsx.init() # 初始化引擎
engine.say('独断万古荒天帝, 唯负罪州火桑女') # 添加文本到语音队列
engine.runandwait() # 开始语音输出
使用sapi实现文本转换语音
在 python 中,你也可以使用 sapi 来做文本到语音的转换。
在python中,win32com库是一个用于与windows操作系统中的com(component object model)组件进行交互的模块。win32com.client模块提供了一种使用com自动化的python接口。通过win32com.client.dispatch方法,可以访问和控制支持com自动化的任何windows应用程序或服务。
对于sapi(speech application programming interface),可以通过win32com库来访问其功能,从而实现文本到语音(tts)和语音识别。
代码:
from win32com.client import dispatch
msg = "独断万古荒天帝, 唯负罪州火桑女"
speaker = dispatch('sapi.spvoice') # 创建sapi的语音引擎实例
speaker.speak(msg) # 将文本转换为语音并朗读
del speaker # 删除 speaker 对象,释放与之关联的资源。
使用 speechlib实现文本转换语音
speechlib 是微软提供的一个用于语音功能的 com 库,它允许开发者在 windows 平台上进行文本到语音(tts)和语音识别的开发。通过 speechlib,您可以控制语音引擎的多种属性,比如语速、音量、语调以及使用的语音库。
使用 speechlib,可以从文本文件中获取输入,再将其转换为语音。
使用使用 speechlib需要安装第三方库:comtypes
安装命令:
pip3 install comtypes -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
代码:
from comtypes.client import createobject
from comtypes.gen import speechlib # 导入 speechlib
engine = createobject("sapi.spvoice") # 创建 sapi.spvoice 对象的实例
stream = createobject("sapi.spfilestream") # 创建 sapi.spfilestream 对象的实例
infile = 'demo.txt'
outfile = 'demo_audio.wav'
stream.open(outfile, speechlib.ssfmcreateforwrite) # 输出文件,准备写入音频数据
engine.audiooutputstream = stream # 音频输出流设置为 stream 对象
f = open('demo', 'r', encoding='utf-8') # 打开输入文本文件
thetext = f.read() # 读取文件
f.close() # 关闭文件
engine.speak(thetext) # 使用语音引擎将文本转换为语音并输出。
stream.close() # 关闭音频流,完成音频文件的写入
语音转换为文本
使用 pocketsphinx实现语音转换文本
pocketsphinx 是一个轻量级的语音识别库,它是 cmu sphinx 开源语音识别系统的一个子集。cmu sphinx 由卡内基梅隆大学开发,是一个功能强大且灵活的语音识别系统。pocketsphinx 特别适用于嵌入式系统和移动设备,因为它的体积小、速度快,同时提供了相对较高的识别准确率。
所需的第三方模块:pocketsphinx和speechrecognition
安装命令:
pip3 install pocketsphinx -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip3 install speechrecognition -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
代码:
import speech_recognition as sr
audio_file = 'demo_audio.wav'
r = sr.recognizer()
with sr.audiofile(audio_file) as source:
audio = r.record(source)
try:
# print('文本内容:',r.recognize_sphinx(audio,language="zh_cn"))
print('文本内容:', r.recognize_sphinx(audio))
except exception as e:
print(e)
发表评论