第 9 课:语音识别(ASR),让 AI 听懂你说的话!

✅ 任务目标

  1. 了解 ASR(自动语音识别),让 AI 将语音转换为文本。

  2. 使用开源语音识别库,在本地运行语音转文字。

  3. 训练自己的语音识别模型,让 AI 适应你的声音。


第一步:什么是 ASR(自动语音识别)?

ASR(Automatic Speech Recognition)就是让 AI 把人说的话转换成文字,它是语音助手的基础。

  • 你对 Siri 说 “明天的天气怎么样?”,它需要先把这句话 转换成文本,然后用 NLP 理解你的意思。

  • 你的智能助手也需要 语音输入,这样用户就可以通过 说话 来控制 AI,而不是只能打字。

常见的 ASR 应用:

  • 语音助手(Siri、小爱同学、讯飞语音)。

  • 会议转录(腾讯会议、钉钉语音转写)。

  • 字幕生成(B站 AI 字幕)。

  • 语音控制("打开微信","拨打电话给妈妈")。


第二步:安装语音识别库

在 Python 里,我们可以使用 SpeechRecognition 进行语音识别。

pipinstallspeechrecognitionpydub

第三步:让 AI 识别麦克风语音

我们用 speech_recognition 让 AI 实时听取你的声音,并转换成文字。

import speech_recognition as sr# 初始化识别器recognizer = sr.Recognizer()# 打开麦克风with sr.Microphone() as source:    print("🎤 说话中...")    recognizer.adjust_for_ambient_noise(source)  # 适应环境噪音    audio = recognizer.listen(source)  # 录音# 识别语音try:    text = recognizer.recognize_google(audio, language="zh-CN")  # 识别中文    print(f"你说的是:{text}")except sr.UnknownValueError:    print("无法识别语音")except sr.RequestError:print("无法连接到语音识别服务")

🎙️ 测试

运行代码后,你可以 对着麦克风说话,AI 会把你的声音转换成文本。


第四步:让 AI 识别本地音频文件

如果你想让 AI 识别音频文件(比如 .wav 录音文件),可以这样做:

audio_path = "your_audio.wav"with sr.AudioFile(audio_path) as source:    audio = recognizer.record(source)  # 读取音频    text = recognizer.recognize_google(audio, language="zh-CN") print(f"音频内容:{text}")

📌 注意

  • speech_recognition 只能识别 WAV 格式,如果你的音频是 MP3,需要先转成 WAV。


第五步:使用 Whisper 进行离线语音识别

上面的 speech_recognition 需要联网,但如果你想要本地运行,可以使用 OpenAI Whisper!Whisper 是一个超强的语音识别模型,支持 多种语言,而且 可以在本地运行

1. 安装 Whisper

pipinstallopenai-whisper

2. 让 AI 识别本地音频

import whisper# 加载 Whisper 模型model = whisper.load_model("base")# 识别音频result = model.transcribe("your_audio.wav")print("识别结果:",result["text"])

Whisper 支持中文,而且准确率比 speech_recognition 更高!


第六步:训练自己的 ASR 模型(进阶)

如果你想让 AI 适应你的声音,可以训练自己的 ASR 模型,比如:

  • Fine-tune Whisper:用你的语音数据微调 Whisper,让它更懂你的口音。

  • Mozilla DeepSpeech:一个开源 ASR 项目,可以自己训练模型。

  • PaddleSpeech:百度的语音识别框架,也支持中文。

训练 ASR 需要大量语音数据,所以建议先用 Whisper 直接推理,后期再考虑训练自己的模型。


🎯 练习任务

任务 1:让 AI 识别你的声音,并转成文字。✅ 任务 2:尝试 Whisper,看它的准确率是否比 speech_recognition 更好。✅ 任务 3:试试不同的音频格式(MP3、WAV),看看识别效果如何。