python|python 语音识别深度学习_用Python实现语音识别的终极指南

目录语音识别的工作原理
Python语音识别软件包的选择
安装语音识别包
识别器类
使用音频文件
支持的文件类型
使用record()来捕获文件中的数据
具有偏移和持续时间的段的捕获
噪声对语音识别的影响
用麦克风工作
麦克风类
使用Listen()捕获麦克风输入
【python|python 语音识别深度学习_用Python实现语音识别的终极指南】处理不可识别的语音
综合:一个“猜单词”游戏
补充和补充资源
附录:用英语以外的语言识别语音
语音识别的工作原理
语音识别起源于20世纪50年代初在贝尔实验室进行的研究。早期的系统仅限于一个说话者,并且有大约10个单词的词汇量有限。现代语音识别系统自远古以来就有很长的路要走。他们可以识别来自多个发言者的讲话,并且在许多语言中有海量的词汇。
当然,语音识别的第一个组成部分是语音。语音必须用麦克风从物理声音转换成电信号,然后用模数转换器转换成数字数据。一旦数字化,可以使用几个模型来转录音频到文本。
大多数现代语音识别系统依赖于所谓的隐性马尔可夫模型(HMM)。这种方法的假设是,当在足够短的时间尺度上(例如,10毫秒)观看语音信号时,可以合理地近似为一个平稳过程,即统计特性随时间不改变的过程。
在一个典型的HMM中,语音信号被划分为10毫秒片段。每个片段的能谱,实质上是信号的功率作为频率的函数的图,被映射为实数向量,称为倒频谱参数。该向量的维数通常很小,有时低到10,尽管更精确的系统可以具有32或更多的维数。HMM的最终输出是这些向量的序列。
为了将语音解码成文本,向量组与一个或多个音素(音位)匹配,这是基本的语音单位。这个计算需要训练,因为音位的声音每个人都不同,甚至由同一个说话者的发音都有变化。然后应用一种特殊算法来确定产生给定音素序列的最有可能的词(或词)。
可以想象,整个过程可能在计算上是昂贵的。在许多现代语音识别系统中,使用神经网络来简化语音信号,在HMM识别之前使用特征变换和降维技术。语音活动检测器(VADS)也被用来将音频信号减少到仅包含可能包含语音的部分,这防止识别器浪费时间分析信号的不必要部分。
幸运的是,作为一个Python程序员,不必担心任何这些。许多语音识别服务可通过API在线使用,其中许多服务提供Python SDK。
Python语音识别软件包的选择
在PyPI上有少量用于语音识别的软件包。其中包括:apiai?pypi.orgpython|python 语音识别深度学习_用Python实现语音识别的终极指南
文章图片
assemblyai?pypi.orgpython|python 语音识别深度学习_用Python实现语音识别的终极指南
文章图片
google-cloud-speech?pypi.orgpython|python 语音识别深度学习_用Python实现语音识别的终极指南
文章图片
pocketsphinx?pypi.orgpython|python 语音识别深度学习_用Python实现语音识别的终极指南
文章图片
SpeechRecognition?pypi.orgpython|python 语音识别深度学习_用Python实现语音识别的终极指南
文章图片
watson-developer-cloud?pypi.orgpython|python 语音识别深度学习_用Python实现语音识别的终极指南
文章图片
wit?pypi.orgpython|python 语音识别深度学习_用Python实现语音识别的终极指南
文章图片

其中一些软件包如wit和apiai提供了内置的功能,如识别说话人意图的自然语言处理,这超越了基本的语音识别。其他人,如谷歌云语音,只专注于语音到文本转换。
有一个在易用性方面突出的软件包:SpeechRecognition。
识别语音需要音频输入,并且SpeechRecognition使得检索这一输入非常容易。而不是建立脚本来访问麦克风和从头开始处理音频文件,SpeechRecognition将让你在几分钟内即可运行。
SpeechRecognition作为几个流行语音API的包装器,因此非常灵活。其中一个谷歌Web语音API支持一个默认的API密钥,它硬编码到语音识别库中。这意味着你可以在不需要注册服务的情况下即可使用。
SpeechRecognition的灵活性和易用性使它成为任何Python项目的最佳选择。然而,对它所封装的每个API的每个特征的支持都不能保证。你需要花一些时间研究可用的选项,以找出SpeechRecognition能否在你的特定情况下起作用。
所以,下一步尝试将它安装在你的环境中。
安装SpeechRecognition
SpeechRecognition与Python 2.6、2.7和3.3 +兼容,但需要Python 2的一些附加安装步骤。在本教程中,假设正在使用Python 3.3 +。
可以用Pip从终端安装语音识别:
$ pip install SpeechRecognition
安装后,验证安装:
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
继续保持这个会话。
如果你需要做的就是和现有的音频文件一起工作,那么SpeechRecognition就可以工作了。然而,特定的情况下需要一些依赖。值得注意的是,PyAudio软件包需要捕获麦克风输入。
现在,让我们深入研究这个软件包的基本知识。
识别器类
SpeechRecognition中的所有魔术都是在识别器类中发生的。
识别器实例的主要目的当然是识别语音。每个实例都具有用于识别来自音频源的语音的各种设置和功能。
创建识别器实例很简单。在当前的解释器会话中,仅键入:
>>> r = sr.Recognizer()

    推荐阅读