首先呢第一次写文章记录自己的无聊时光,因为本次想实现一些简单的程序,没想这种简单的搭建上也遇到了很多坑,在这里详细的记录一下,小白制作,不喜勿喷。希望可以培养成一个新的习惯。
背景
为实现识别英文语音转换文字,上网调研了Speech_recognition的包,以此进行实现。
系统:win 10
python工具:Pycharm
问题一:speech_recognition模块安装不上
在安装这个模块之前需要先安装pocketphinx模块,大家可以自行百度安装,如果那个模块装不上了比如swig,一般来说先进行pip安装,安装成功后还是有这样的问题,那么就需要进行环境变量的配置,在下文中,安装ffmpeg中会详细介绍。
问题二:speech_recognition模块并不支持MP3的转换需要使用到pydub中的AudioSegment进行转换
import speech_recognition as sr
def audio2words():
audio_file = '1.mp3'
r = sr.Recognizer()
with sr.AudioFile(audio_file) as source:
audio = r.record(source)
print('文本内容',r.recognize_sphinx(audio,language='en-US'))
audio2words()
因此,按照以上代码进行运行时报错:
被告知只有PCM WAV,AIFF/AIFF-C,或者Native FLAC这样的格式才可以(这几个格式还没有去研究,有兴趣的可以自行研究),MP3 并不被允许,所以要将MP3转成wav格式,可以通过pydub的包来实现。
from pydub import AudioSegment
# files
src = "1.mp3"
dst = "test2.wav"
# convert wav to mp3
audSeg = AudioSegment.from_mp3("1.mp3")
audSeg.export(dst, format="wav")
问题三:在转换MP3格式的时候,Audiosegment出问题,因为需要先安装ffmpeg,而ffmpeg也需要跟Audiosegment对应版本
在这里下载最新的ffmpeg,网址:Download FFmpeg
进行 一步一步下载,最终解压成这两个文件,两个文件都必须解压,放到一个熟悉的目录:
两个都需要配置环境变量,操作也很容易:
win10中:进入:系统->关于->高级系统设置
进入环境变量,编辑用户和系统的环境变量:主要是path,寻找path,在path中新增value,而这个value就是以上两个ffmpeg的文件夹的路径,到此为止安装成功。
问题四:在安装pocketsphinx时不成功,日志中显示不是pip的问题,这种类似的字眼,很有可能是没有安装C++配置
安装Microsoft Visual C++ Build Tools,在官网可以一步一步安装:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux (microsoft.com)
问题五:配置完环境变量之后还是不行,很有可能需要重启程序,重启pycharm再试一下
反正我这么试试就可以了,哈哈哈。
总结
其实过程中还遇到了很多基础问题,过程中没有记录下来,比如好几个python的版本,项目与系统中的python版本不一致等等,但都查询了各位大神的解决办法,总的来说,大神栽树,后人乘凉。希望有所帮助。