语音识别在python中借助speechrecognition库实现非常简便。1. 安装speechrecognition库,使用pip install speechrecognition;2. 若需使用非google api的服务,需额外申请密钥或安装依赖;3. 需安装pyaudio库支持麦克风输入,linux和macos可能需要特殊处理;4. 使用recognizer和microphone对象获取并识别音频;5. 可通过adjust_for_ambient_noise减少噪音干扰,设置语言参数调整识别语种;6. 支持离线识别和音频文件识别。整个流程简单但需注意环境配置和细节问题。

语音识别在Python中其实并不复杂,尤其是借助一些现成的库,比如 SpeechRecognition。它封装了多种语音识别引擎和API,使用起来非常方便,适合初学者快速上手。

安装SpeechRecognition
要开始用 SpeechRecognition,首先得安装这个库。一般直接用 pip 安装就可以了:
pip install SpeechRecognition
如果你还想用Google Web Speech API来做实际的识别(默认就是这个),那基本不需要额外配置。但如果你想用其他服务,比如Sphinx、Wit.ai、Bing Voice等,可能还需要申请密钥或者安装额外依赖。
立即学习“Python免费学习笔记(深入)”;

获取麦克风输入:需要pyaudio
默认情况下,SpeechRecognition 支持从麦克风获取音频,但需要一个叫 pyaudio 的库支持。这一步经常卡人,特别是Windows以外的系统。
你可以尝试用 pip 安装:

pip install pyaudio
如果装不上,Linux用户可能需要用 apt-get 安装依赖:
sudo apt-get install python3-pyaudio
macOS用户可能需要用 homebrew 安装 portaudio 再编译安装pyaudio。
最简单的语音识别示例
下面是一个基础例子,它会监听麦克风,然后把你说的话转成文字:
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
print("请说话...")
audio = r.listen(source)
try:
text = r.recognize_google(audio, language="zh-CN")
print("你说的是: " + text)
except sr.UnknownValueError:
print("无法识别音频")
except sr.RequestError as e:
print("请求出错; {0}".format(e))这段代码的关键在于:
- 使用
Recognizer()创建一个识别器对象 - 用
Microphone()上下文管理器来获取音频流 - 调用
listen()来监听一次语音输入 - 最后调用
recognize_google()进行识别(默认是Google API)
注意:Google的API在国外服务器,网络不好的话可能会失败。可以考虑换别的API,或者加个重试机制。
常见问题和注意事项
-
环境噪音干扰:可以在录音前加一句
r.adjust_for_ambient_noise(source)自动校准背景噪音。 -
识别语言设置:上面例子用了
"zh-CN"表示中文普通话,英文就换成"en-US"。 - 离线识别:如果你想离线识别,可以用CMU Sphinx,不过准确率会低一些。
-
音频文件识别:不只是麦克风,你也可以读取
.wav文件进行识别,只需要改成sr.AudioFile("test.wav")就行。
基本上就这些。整个流程不算复杂,但有些细节容易忽略,比如pyaudio的安装、网络访问权限这些。遇到问题多看看错误提示,再查文档或Stack Overflow,应该都能解决。










