最近在学习语音识别的一些基本知识,也在了解Python的语音识别功能依赖库。分享一下。
Python的依赖库中有一些现成的语音识别软件包。其中包括:
- apiai
- google-cloud-speech
- pocketsphinx
- SpeechRcognition
- watson-developer-cloud
- wit
其中SpeechRecognition,是google出的,专注于语音向文本的转换。
wit 和 apiai 提供了一些超出基本语音识别的内置功能,如识别讲话者意图的自然语言处理功能。
满足几种主流语音 API ,灵活性高
Google Web Speech API 支持硬编码到 SpeechRecognition 库中的默认 API 密钥,无需注册就可使用
SpeechRecognition无需构建访问麦克风和从头开始处理音频文件的脚本, 只需几分钟即可自动完成音频输入、检索并运行。因此易用性很高。
SpeechRecognition 的核心就是识别器类。一共有七个Recognizer API ,包含多种设置和功能来识别音频源的语音,分别是:
recognize_bing():Microsoft Bing Speech
recognize_google(): Google Web Speech API
recognize_google_cloud():Google Cloud Speech - requires installation of the google-cloud-speech package
recognize_houndify(): Houndify by SoundHound
recognize_ibm():IBM Speech to Text
recognize_sphinx():CMU Sphinx - requires installing PocketSphinx
recognize_wit():Wit.ai
以上七个中只有 recognition_sphinx()可与CMU Sphinx 引擎脱机工作, 其他六个都需要连接互联网。
另外,SpeechRecognition 附带 Google Web Speech API 的默认 API 密钥,可直接使用它。其他六个 API 都需要使用 API 密钥或用户名/密码组合进行身份验证,因此本文使用了 Web Speech API。
To use all of the functionality of the library, you should have:
需要Python 2.6、2.7和3.3以上的版本
需要安装PyAudio 0.2.11+的版本
需要安装PocketSphinx
需要使用Google API Client Library for Python
需要安装FLAC encoder,如果系统不是X86
支持的文件类型有:
WAV: 必须是 PCM/LPCM 格式
AIFF
AIFF-C
FLAC: 必须是初始 FLAC 格式;OGG-FLAC 格式不可用
import speech_recognition as sr
r = sr.Recognizer()
test = sr.AudioFile('/Users/alice/Documents/Work/Blog/AI/语音识别/speechrecognition/audiofiles/test1.wav')
with test as source:
audio = r.record(source)
type (audio)
r.recognize_google(audio, language='zh-CN', show_all= True)