在 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 + pyaudiopip install webrtcvad pyaudio
思路:
import webrtcvad
vad = webrtcvad.Vad(3) # 0~3,越严格
⚠️ webrtcvad 是语音活动检测(VAD),不是真正“降噪”,但能显著提升识别率。
speechbrain / RNNoisePython 封装:
pip install rnnoise
pip install speechbrain
适合:
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 → 语音识别
✅ 环境建议
✅ 识别模型
你现在是:文件识别 还是 实时语音?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。