当前位置: 代码网 > it编程>前端脚本>Python > python 实现文本语音识别

python 实现文本语音识别

2024年08月05日 Python 我要评论
PocketSphinx 是一个轻量级的语音识别库,它是 CMU Sphinx 开源语音识别系统的一个子集。这个库支持多种操作系统,包括 Windows、Linux 和 macOS,并且可以在没有互联网连接的情况下工作,因为它使用的是计算机上安装的本地语音引擎。SpeechLib 是微软提供的一个用于语音功能的 COM 库,它允许开发者在 Windows 平台上进行文本到语音(TTS)和语音识别的开发。通过 SpeechLib,您可以控制语音引擎的多种属性,比如语速、音量、语调以及使用的语音库。

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)
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com