温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python语音识别怎么降噪

发布时间:2026-10-15 04:00:40 来源:亿速云 阅读:110 作者:小樊 栏目:编程语言

在 Python 里做语音识别降噪,通常分三种思路:录音前/录音时降噪、用音频处理库降噪、用模型端到端降噪。下面按“实用程度”给你一套清晰方案。


一、最简单:用 noisereduce(推荐新手)

适合:已有音频文件(wav/mp3),识别前先降噪

安装

pip install noisereduce numpy scipy soundfile

示例

import noisereduce as nr
import soundfile as sf

# 读音频
data, rate = sf.read("test.wav")

# 降噪(stationary=True 表示稳态噪声,如风扇声)
reduced = nr.reduce_noise(
    y=data,
    sr=rate,
    stationary=True,
    prop_decrease=0.8
)

sf.write("clean.wav", reduced, rate)

✅ 优点:简单、效果不错
❌ 缺点:对突发噪声(键盘声、人声重叠)效果一般


二、实时录音降噪(麦克风)

适合:语音识别前实时处理

使用 webrtcvad + pyaudio

pip install webrtcvad pyaudio

思路:

  • 检测“是不是语音”
  • 非语音直接丢弃或静音
import webrtcvad

vad = webrtcvad.Vad(3)  # 0~3,越严格

⚠️ webrtcvad 是语音活动检测(VAD),不是真正“降噪”,但能显著提升识别率。


三、专业级:用 speechbrain / RNNoise

1️⃣ RNNoise(C 库,Python 可调用)

  • 专为语音降噪设计
  • 实时、低延迟
  • 常用于 VoIP

Python 封装:

pip install rnnoise

2️⃣ SpeechBrain(深度学习)

pip install speechbrain

适合:

  • 强噪声环境
  • 远场语音

四、配合语音识别(Whisper 示例)

import whisper
import noisereduce as nr
import soundfile as sf

# 降噪
data, rate = sf.read("raw.wav")
clean = nr.reduce_noise(y=data, sr=rate)

sf.write("clean.wav", clean, rate)

# 识别
model = whisper.load_model("base")
result = model.transcribe("clean.wav")
print(result["text"])

五、实用建议(很重要)

✅ 降噪顺序

原始音频 → 降噪 → VAD → 语音识别

✅ 环境建议

  • 用耳机麦克风
  • 避免回声房间
  • 采样率 16k 足够

✅ 识别模型

  • Whisper >> 传统 API(在噪声下)

六、如果你愿意,我可以:

  • 给你 实时麦克风降噪 + 识别完整代码
  • 针对 中文噪声场景调参
  • 用 Whisper + VAD 做断句识别

你现在是:文件识别 还是 实时语音?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手