002、利用 speech_recognition 语音转换文本

import speech_recognition as sr

audio_file = 'demo_audio.wav'
r = sr.Recognizer()
# 打开语音文件
with sr.AudioFile(audio_file) as source:
    audio = r.record(source)

# print('文本内容: ',r.recognize_sphinx(audio,language='zh_CN'))  #汉语
print('文本内容: ', r.recognize_sphinx(audio))  # 英语

所依赖的包, 和 运行结果如下:

002、利用 speech_recognition 语音转换文本_第1张图片

查看 PocketSphinx  和  SpeechRecognition 的依赖,如下:

002、利用 speech_recognition 语音转换文本_第2张图片

Required-by:  表示所要依赖的包。

代码比较简单,主要是环境和依赖包的安装麻烦。 

1、SpeechRecognition包的安装,比较简单,在pycharm中可以找到安装包,安装即可。如下:

002、利用 speech_recognition 语音转换文本_第3张图片

如果要使用该包的更多功能,需要安装更多的依赖包,官方截图如下:

注意 下面截图的 all ,我前面的代码可不用安装这么多包。

自己查看原文档,SpeechRecognition官方参考:  https://pypi.org/project/SpeechRecognition/

002、利用 speech_recognition 语音转换文本_第4张图片

2、PocketSphinx包的安装

         PocketSphinx是一个用于语音转换文本的开源API。它是一个轻量级的语音识别引擎,尽管在桌面端也能很好地工作,它还专门为手机和移动设备做过调优。

安装指令: pip3 install PocketSphinx

安装 PocketSphinx 时会遇到的坑:

坑1、error: command 'swig.exe' failed: No such file or directory,

002、利用 speech_recognition 语音转换文本_第5张图片

解决方法:

步骤1、下载swig

a、官方下载 swig , http://prdownloads.sourceforge.net/swig/swigwin-4.0.2.zip

b、百度网盘下载:https://pan.baidu.com/s/1ZTMrgi8tFTx6FcPRth-kBg 提取码:gt6n 

(备注:百度网盘是我从官网下载的,完全一样。)

步骤2、swig配置环境变量:

注意:系统变量,path下,添加。如下图:

网上有人说,需要在路径最后加 \  。 我的情况是:我没加 \ 时,再次安装PocketSphinx并没有报swig的错。后来我又加上 \  也没报swig的错。 但是我最终还是如下图一样,加上了 \  。

002、利用 speech_recognition 语音转换文本_第6张图片

坑2, since package 'wheel' is not installed.

002、利用 speech_recognition 语音转换文本_第7张图片

需要安装 wheel包,执行命令: pip3 install wheel

坑3、 error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools":

002、利用 speech_recognition 语音转换文本_第8张图片

网上有各种方法安装这个包,我都试了下挺不顺畅的,最终选择了离线包。

用pip install 安装包时,有些包需要依赖Microsoft Visual C++ 14.0,所以建议把这个安装。

用离线包安装 : 链接:https://pan.baidu.com/s/1EHF7rQFf21xlqp51XPkARA 
提取码:uli4  。 大约1GB的文件。
 

002、利用 speech_recognition 语音转换文本_第9张图片

002、利用 speech_recognition 语音转换文本_第10张图片

002、利用 speech_recognition 语音转换文本_第11张图片

大约 10 到 30分钟安装完毕。

002、利用 speech_recognition 语音转换文本_第12张图片

把这3个坑解决。

执行命令安装 : pip3 install PocketSphinx     可安装成功。

或者在pycharm中安装 pocketsphinx,也能成功了。

002、利用 speech_recognition 语音转换文本_第13张图片

也可以 离线安装 PocketSphinx (不推荐使用这种方法)

步骤1、进入 https://www.lfd.uci.edu/~gohlke/pythonlibs/  ,ctrl + f ,查找 PocketSphinx ,如下:

002、利用 speech_recognition 语音转换文本_第14张图片

步骤2、跳转到  pocketsphinx 下载的地方。

             据系统位数 和 python版本下载 对应的包。我是64位系统,python 3.8版本。

002、利用 speech_recognition 语音转换文本_第15张图片

步骤3、安装 pocketsphinx-0.1.15-cp38-cp38-win_amd64.whl

       执行命令: pip3 install pocketsphinx-0.1.15-cp38-cp38-win_amd64.whl   (离线包的路径) 

利用 speech_recognition 把中文普通话转文本

步骤1、下载PocketSphinx普通话包 :

链接:https://pan.baidu.com/s/1XcgA2TDNoKfp7XWcGZaPOg 
提取码:4v98 
(这个包是我从官网上下载的,科学上网下载的。)

步骤2、解压 zh-CN.zip ,进入解压后的 zh-CN 文件夹,再进入到 pocketsphinx-data 文件夹,复制 zh-CN 文件夹。

(注意这个目录层级 是 C:\Users\27806\Desktop\zh-CN\pocketsphinx-data)

步骤3、把刚才复制的 zh-CN 文件夹,放到 D:\SkyWorkSpace\WorkSpace\Ai\Temp\day02\venv\Lib\site-packages\speech_recognition\pocketsphinx-data 目录下 ( 即 pycharm构建项目 venv 第三方库中。)

步骤4、代码添加 r.recognize_sphinx(audio, language='zh-CN')

            demo_audio.wav 的语音内容是:  hello world , 该吃饭了

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)

执行结果:

002、利用 speech_recognition 语音转换文本_第16张图片

你可能感兴趣的:(python人工智能(语音),自然语言处理)