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)) # 英语
所依赖的包, 和 运行结果如下:
查看 PocketSphinx 和 SpeechRecognition 的依赖,如下:
Required-by: 表示所要依赖的包。
代码比较简单,主要是环境和依赖包的安装麻烦。
1、SpeechRecognition包的安装,比较简单,在pycharm中可以找到安装包,安装即可。如下:
如果要使用该包的更多功能,需要安装更多的依赖包,官方截图如下:
注意 下面截图的 all ,我前面的代码可不用安装这么多包。
自己查看原文档,SpeechRecognition官方参考: https://pypi.org/project/SpeechRecognition/
2、PocketSphinx包的安装
PocketSphinx是一个用于语音转换文本的开源API。它是一个轻量级的语音识别引擎,尽管在桌面端也能很好地工作,它还专门为手机和移动设备做过调优。
安装指令: pip3 install PocketSphinx
安装 PocketSphinx 时会遇到的坑:
坑1、error: command 'swig.exe' failed: No such file or directory,
解决方法:
步骤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的错。 但是我最终还是如下图一样,加上了 \ 。
坑2, since package 'wheel' is not installed.
需要安装 wheel包,执行命令: pip3 install wheel
坑3、 error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools":
网上有各种方法安装这个包,我都试了下挺不顺畅的,最终选择了离线包。
用pip install 安装包时,有些包需要依赖Microsoft Visual C++ 14.0,所以建议把这个安装。
用离线包安装 : 链接:https://pan.baidu.com/s/1EHF7rQFf21xlqp51XPkARA
提取码:uli4 。 大约1GB的文件。
大约 10 到 30分钟安装完毕。
把这3个坑解决。
执行命令安装 : pip3 install PocketSphinx 可安装成功。
或者在pycharm中安装 pocketsphinx,也能成功了。
也可以 离线安装 PocketSphinx (不推荐使用这种方法)
步骤1、进入 https://www.lfd.uci.edu/~gohlke/pythonlibs/ ,ctrl + f ,查找 PocketSphinx ,如下:
步骤2、跳转到 pocketsphinx 下载的地方。
据系统位数 和 python版本下载 对应的包。我是64位系统,python 3.8版本。
步骤3、安装 pocketsphinx-0.1.15-cp38-cp38-win_amd64.whl
执行命令: pip3 install pocketsphinx-0.1.15-cp38-cp38-win_amd64.whl (离线包的路径)
步骤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)
执行结果: