以下是使用Python进行语音识别的最简核心代码示例,涵盖两种主流方法(预训练模型 & 底层信号处理),均需安装依赖库:
1. 使用预训练模型(最快实现,依赖speech_recognition库)
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source: # 调用麦克风
print("请说话...")
audio = r.listen(source) # 录制语音
text = r.recognize_google(audio, language='zh-CN') # 调用Google API转文字
print("识别结果:", text)
核心逻辑:
listen()捕获音频流 →recognize_google()调用云端API识别(需联网)。- 优点:5行代码实现,准确率高。
- 缺点:依赖网络,隐私性差。
2. 使用本地模型(whisper库,离线可用)
import whisper
model = whisper.load_model("tiny") # 加载轻量模型(可选small/base/large)
result = model.transcribe("audio.wav") # 识别音频文件
print(result["text"]) # 输出文字
核心逻辑:
load_model()加载预训练模型 →transcribe()本地推理。- 优点:离线运行,支持多语言。
- 缺点:首次需下载模型(tiny模型约75MB)。
3. 底层信号处理(纯NumPy演示,仅傅里叶变换)
import numpy as np
from scipy.io import wavfile
sample_rate, audio = wavfile.read("audio.wav") # 读取音频
fft = np.fft.fft(audio) # 傅里叶变换获取频域特征
核心逻辑:
- 音频转为频谱 → 后续需接分类器(如CNN)识别内容。
- 用途:教学理解语音信号处理基础。
关键库总结
| 库名 | 用途 | 安装命令 |
|---|---|---|
speech_recognition | 调用云端API(Google等) | pip install SpeechRecognition |
whisper | 本地高精度识别(OpenAI开源) | pip install openai-whisper |
librosa | 专业音频分析 | pip install librosa |
选择建议
- 快速实现:用
speech_recognition(需联网)或whisper(离线)。 - 学习原理:用
librosa+numpy分析MFCC特征(需机器学习基础)。 - 生产环境:结合
whisper+VAD(语音活动检测)优化实时性。