Python进行语音识别

332 阅读1分钟

以下是使用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(语音活动检测)优化实时性。