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

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

python离线语音转文字_第1张图片

注意,无论是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/

python离线语音转文字_第2张图片

下载之后,解压

把解压出来的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,语音识别)