python离线语音转文字

1、安装SpeechRecognition第三方库  

pip install SpeechRecognition

 2、安装pocketsphinx第三方库,安装时,可能会报错error: command 'swig.exe' failed: No such file or directory

这时候需要安装,swig

swig下载地址:

阿里云:https://www.aliyundrive.com/s/XGvEKWH9r3c

百度网盘:链接:https://pan.baidu.com/s/17qEWcJ0qI21MoqGwUdV0lw 提取码:7myi

下载之后,放在你想放的地方,然后配置环境变量

注意,无论是cmd,还是pycharm安装,都需要重启

最后执行命令:pip install pocketsphinx,可以正常安装

3、代码:注意,默认只能转为英语,如果要转为汉字,需要下载中文语言、声学模型

中文语言、声学模型下载地址:

链接:https://pan.baidu.com/s/13BFUnOlzubl6cOGQ8E8haQ 
提取码:z8s1

下载之后解压,然后把zh-CN文件夹粘贴到

/speech_recognition/pocketsphinx-data

文件夹下,注意,如果是虚拟环境,speech_recognition文件夹在venv\Lib\site-packages下,如果不是虚拟环境,就看你的第三方包都安装在哪里了

也可以下载最新的声学模型

下载地址:https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/

下载之后,解压

把解压出来的zh_cn.cd_cont_5000文件夹重命名为acoustic-model、zh_cn.lm.bin命名为language-model.lm.bin、zh_cn.dic中dic改为dict格式,zh_cn替换为pronounciation-dictionary

 最后把这个三个文件放在zh-CN文件夹中,把zh-CN文件夹放在speech_recognition文件夹在venv\Lib\site-packages下

注意:识别的准确度不是很高,最好还是调api

import speech_recognition as sr
def wav2txt():
    r = sr.Recognizer()
    # 打开语音文件
    with sr.AudioFile('./test.wav') as source:
        audio = r.record(source)
    # print('文本内容: ', r.recognize_sphinx(audio, language='zh-CN'))  # 汉语
    try:
        print('文本内容: ', r.recognize_sphinx(audio, language='zh-CN'))  # 汉语
        # print('文本内容: ', r.recognize_sphinx(audio))  # 英语
    except Exception as e:
        print('报错了,报错内容---',e)

wav2txt()

Python离线语音文字可以使用SpeechRecognition库来实现。SpeechRecognition是一个开源的Python库,它提供了一种简单方便的方式来处理语音识别任务。 首先,你需要安装SpeechRecognition库。可以使用pip命令来安装,在命令行中输入以下命令: ``` pip install SpeechRecognition ``` 安装完成后,你需要下载和安装一个语音识别引擎。SpeechRecognition库支持多个引擎,包括CMU Sphinx、Google Web Speech API、Google Cloud Speech API等。你可以根据自己的需求选择一个合适的引擎,并按照它的安装指南进行安装。 下面是一个使用CMU Sphinx引擎实现离线语音文字的示例代码: ```python import speech_recognition as sr # 创建一个Recognizer对象 r = sr.Recognizer() # 使用Microphone类来访问麦克风 with sr.Microphone() as source: print("请开始说话:") audio = r.listen(source) # 获取用户输入的音频数据 try: text = r.recognize_sphinx(audio, language='zh-CN') # 使用CMU Sphinx引擎将音频换为文本 print("识别结果:", text) except sr.UnknownValueError: print("语音识别失败") except sr.RequestError as e: print("请求出错:", str(e)) ``` 在上述代码中,我们创建了一个Recognizer对象,然后使用with语句和Microphone类来访问麦克风并获取用户输入的音频数据。之后,我们调用recognize_sphinx方法来使用CMU Sphinx引擎将音频换为文本,并打印出识别结果。 请注意,这只是一个简单的示例,具体的实现方式可能会因为使用的引擎不同而有所差异。你可以根据自己的需求进一步调整代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值