想象你站在一个喧闹的夜市里,朋友小李凑近你耳边,压低声音说了一句非常重要的秘密。可周围有烧烤摊的抽风机、广场舞的音乐、摩托车的轰鸣,甚至还有隔壁摊位叫卖“烤冷面”的喇叭。你的身边站着一位听写员小智,他要把小李的话一字不差地记下来。如果让小智直接去听,他会把噪音也写进笔记,甚至把“你先走”听成“咸豆脑”。语音增强与降噪预处理,就是给小智配上一套“听觉净化设备”——先用它把朋友的声音从嘈杂背景中提纯,再让小智记录。这套设备既要会过滤,又不能把朋友的声音弄变形。本文就用这座夜市的场景,带你一步步搞懂语音增强与降噪预处理的原理、方法与工程落地。

岗位关联

对 AI 从业者来说,掌握语音增强与降噪预处理,是优化 ASR/Whisper 识别准确率的关键技能,能直接提升真实场景中音频 AI 产品的可用性和用户体验。

目录
  1. 可视化演示
  2. 语音增强概述
  3. 经典降噪算法
  4. 深度学习降噪
  5. 预处理流程
  6. Whisper与ASR
  7. 工程集成实现
  8. 性能调优实战
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

语音增强概述

夜市里,朋友小李的声音与周围噪音混在一起。你发现,不同噪声的干扰方式不一样:烧烤摊的抽风机是持续的“嗡嗡”声,摩托车的轰鸣是突然炸响,广场舞的音乐则带着鼓点。想要听清小李的话,你得先判断哪些声音该忽略、哪些该保留。语音增强(Speech Enhancement)做的正是这件事:它像一副“智能听力眼镜”,不改变小李说话的内容,只是让他的声音在混杂物中变得更凸出。

在 AI 系统中,这段“夜市声音”就是麦克风采集到的带噪语音。语音增强就是从带噪信号中估计并提取干净的语音信号,让后续的语音识别(ASR)或 Whisper 等模型更容易听清。它通常作为预处理模块,放在 ASR 之前。衡量它效果好坏的核心指标是信噪比(SNR),它就像“朋友喊声”与“周围杂音”的音量差。

回到夜市场景,SNR 越高,小李的话就越容易从嘈杂声中分辨出来。语音增强的目标就是尽量提高这个值,同时避免把小李的声音“修坏”。

SNR=10log⁡10PsignalPnoise\displaystyle \text{SNR} = 10 \log_{10} \frac{P_{\text{signal}}}{P_{\text{noise}}}
信噪比(SNR)用分贝表示语音功率与噪声功率的比值,数值越高,说明语音越干净。
  1. 信号功率$P_{\text{signal}}$ 表示干净语音在一段时间内的平均功率,单位是瓦特。功率越大,相当于小李说话的声音越响亮。
    Psignal=1N∑n=0N−1x2[n]\displaystyle P_{\text{signal}} = \frac{1}{N}\sum_{n=0}^{N-1} x^2[n]
  2. 噪声功率$P_{\text{noise}}$ 是背景噪声的平均功率,代表夜市中各种杂音的综合强度。
    Pnoise=1N∑n=0N−1d2[n]\displaystyle P_{\text{noise}} = \frac{1}{N}\sum_{n=0}^{N-1} d^2[n]
  3. 对数压缩$10\log_{10}$ 将功率比值换成更有感知意义的分贝单位。因为人耳对声音强度是对数感知,分贝差值也更贴近“感觉有多吵”。
    SNR=10log⁡10PsignalPnoise\displaystyle \text{SNR} = 10 \log_{10} \frac{P_{\text{signal}}}{P_{\text{noise}}}

经典降噪算法

不同类型的夜市噪声,需要不同的应对办法。经典降噪算法就像一些“物理隔音法”:谱减法像在墙上涂吸音棉,维纳滤波像戴上一副可调音量的降噪耳机,子空间法像在地下室隔出一个安静的角落。它们不依赖训练数据,以数学假设为基础。

谱减法(Spectral Subtraction)是最经典的频域降噪方法。它假设噪声是平稳的,先用无语音段估算出噪声频谱,再从每帧带噪语音的频谱中减去噪声贡献。这就好比你先记住夜市里烧烤摊的稳定“底噪”,然后把听到的声音扣除这部分底噪,剩下的就更接近小李的原声。

谱减法实现简单,但它像用吸音棉硬抠噪声——如果抠得太多,朋友的声音会发虚;如果噪声是突然响起的鸣笛声,这种“稳态底噪”估计就会失效。于是人们又发展出维纳滤波等更精细的统计方法,但谱减法依然是最容易上手的入门基石。

∣X^(k)∣2=∣Y(k)∣2−α∣N^(k)∣2\displaystyle |\hat{X}(k)|^2 = |Y(k)|^2 - \alpha |\hat{N}(k)|^2
谱减法的核心是在每个频点上,用带噪信号幅度谱减去估计的噪声幅度谱,α 是控制减噪强度的过减因子。
  1. 带噪频谱$Y(k)$ 是第 $k$ 个频点上带噪语音的频谱值。它等于干净语音频谱 $X(k)$ 与噪声频谱 $N(k)$ 的叠加。
    Y(k)=X(k)+N(k)\displaystyle Y(k) = X(k) + N(k)
  2. 噪声谱估计$\hat{N}(k)$ 通常取无声段(比如小李停顿的间隙)的平均幅度谱,代表夜市的背景底噪。
    N^(k)=1M∑j=1M∣Nj(k)∣\displaystyle \hat{N}(k) = \frac{1}{M}\sum_{j=1}^{M} |N_j(k)|
  3. 过减因子$\alpha$ 用来控制减噪力度。$\alpha > 1$ 时可以更激进地消噪,但太大容易损伤语音,产生“音乐噪声”。
    ∣X^(k)∣2=∣Y(k)∣2−α∣N^(k)∣2\displaystyle |\hat{X}(k)|^2 = |Y(k)|^2 - \alpha |\hat{N}(k)|^2

深度学习降噪

夜市里的噪声千变万化:今天的摩托车手可能突然按喇叭,明天广场舞可能换了新歌。固定公式的“隔音法”很难覆盖所有突发情况。这时,深度学习就像一个见过无数噪声场景的“智能人耳”,它从海量数据中学会自动提取朋友的声音,而不是依赖手工设计的规则。

深度学习降噪通常让神经网络学习一个映射:输入带噪语音,输出干净语音或一个时频掩码。常用的模型有 U-Net 和 Transformer。U-Net 的编码器-解码器结构擅长同时捕捉时间细节和全局信息,是语音降噪任务中最常见的骨架之一。训练阶段用干净语音作为标签,让网络输出尽可能贴近它。

这种“智能人耳”之所以好用,是因为它见多识广。你可以录下办公室里的空调声、马路的车流声、键盘敲击声,把它们与干净语音混合成训练样本,让模型学会各种场景下的降噪。不过,深度学习模型也有代价:它需要较强的算力,在边缘设备上可能要经过量化压缩才能实时运行。

L(θ)=E[∥fθ(y)−x∥22]\displaystyle L(\theta) = \mathbb{E}\left[ \left\| f_\theta(y) - x \right\|_2^2 \right]
这个损失函数是均方误差(MSE),度量模型输出的降噪语音与干净语音之间的平均平方差距,差距越小越好。
  1. 模型输出$f_\theta(y)$ 表示参数为 $\theta$ 的神经网络对带噪信号 $y$ 的预测结果,可以是时域波形,也可以是频域掩码后的信号。
    x^=fθ(y)\displaystyle \hat{x} = f_\theta(y)
  2. 干净标签$x$ 是训练数据中对应的纯净语音,相当于“标准答案”,告诉模型正确的声音应该长什么样。
    x∈RT\displaystyle x \in \mathbb{R}^{T}
  3. 期望与范数$\mathbb{E}$ 表示对大量训练样本取平均,$\| \cdot \|_2^2$ 是欧氏距离的平方,衡量预测与标签的逐点误差。
    L(θ)=1B∑i=1B∥fθ(yi)−xi∥22\displaystyle L(\theta) = \frac{1}{B}\sum_{i=1}^{B} \left\| f_\theta(y_i) - x_i \right\|_2^2

预处理流程

在实际系统中,语音并不会直接塞给 Whisper。就像小智的工作台前还有一套“听觉管线”:麦克风采集、判断是否有人说话、对齐采样率、切分短帧、提取特征。每一步都像流水线上的质检员,缺一不可。

语音活动检测(VAD)是第一位质检员。它判断当前片段里是否真的有人说话,如果只是夜市里没人说话的噪音,就直接“闭麦”,不让这些沉默片段进入后续计算。接下来是重采样:Whisper 等模型通常要求 16 kHz 采样率,如果你的音频是电话的 8 kHz 或音乐 CD 的 44.1 kHz,就需要先转换。再然后,连续语音被切成 20~30 毫秒的短帧,并乘以一个窗函数,避免截断造成频谱泄漏。

预处理流程就像给小智搭好一套干净、规整的“输入格式”。VAD 保证了不浪费算力,重采样保证了格式匹配,分帧加窗则让后续特征提取更稳定。只有流水线里的每一步都顺畅,后面的 Whisper 才能专心听写。

w[n]=0.54−0.46cos⁡(2πnN−1)\displaystyle w[n] = 0.54 - 0.46 \cos\left(\frac{2\pi n}{N-1}\right)
汉明窗(Hamming Window)对每一帧采样点加权,让帧的两端平滑降到 0,减少分帧带来的边缘突变。
  1. 窗长$N$ 决定每帧包含多少个采样点。例如 16 kHz 下 25 毫秒对应 $N=400$。
    N=⌊0.025×fs⌋\displaystyle N = \lfloor 0.025 \times f_s \rfloor
  2. 窗函数$w[n]$ 是每个采样点的权重。帧中心的采样点权重接近 1,两端的权重接近 0,像把灯光聚焦到帧的中间。
    w[0]≈0.08,w[(N−1)/2]≈1\displaystyle w[0] \approx 0.08, \quad w[(N-1)/2] \approx 1
  3. 余弦项$\frac{2\pi n}{N-1}$ 控制余弦曲线的周期,使窗形状平滑,能有效降低频谱中的“泄漏”毛刺。
    2πnN−1,n=0,1,…,N−1\displaystyle \frac{2\pi n}{N-1}, \quad n = 0, 1, \dots, N-1

Whisper与ASR

现在夜市的场景要切换到正式任务:小李要把秘密告诉听写员小智。小智其实是一个自动语音识别(ASR)模型,其中最出名的代表是 OpenAI 的 Whisper。Whisper 见过非常多语言和口音,能做人声转写、翻译、多语言识别,但它同样需要先“听清”才能“写对”。

ASR 的核心任务是“语音转文字”:输入一段音频,输出文本。Whisper 会先把音频切成 30 秒窗口,转成 80 通道的 Log-Mel 频谱特征,然后交给编码器。如果原始音频里混着夜市叫卖声,这些噪声也会被编码成“文字线索”,导致错字。因此,语音增强与预处理的目标,就是让 Whisper 拿到接近干净的语音信号。

Whisper 对噪声有一定鲁棒性,但这不等于可以省略预处理。在信噪比较低或噪声剧烈变化时,不经过降噪直接让 Whisper 听写,错误率会大幅上升。给小智先戴上“降噪耳机”,哪怕只是做基础的谱减法,也能让“先走”不再变成“咸豆脑”。

y[n]=x[n]+d[n]\displaystyle y[n] = x[n] + d[n]
这是最基础的带噪语音模型:麦克风收到的信号等于干净语音与加性噪声的叠加。降噪的目标就是去掉 $d[n]$,恢复 $x[n]$。
  1. 干净语音采样$x[n]$ 表示朋友说话时在第 $n$ 个采样点上的声音数值,是连续声波经过采样离散化后的结果。
    x[n]=x(n/fs)\displaystyle x[n] = x(n / f_s)
  2. 加性噪声采样$d[n]$ 是背景噪声在第 $n$ 个采样点的数值,例如夜市喇叭、引擎声等。
    d[n]=d(n/fs)\displaystyle d[n] = d(n / f_s)
  3. 叠加模型$y[n] = x[n] + d[n]$ 是线性叠加近似,虽然真实环境中还有混响等复杂因素,但它仍是大多数降噪算法的起点。
    y[n]=x[n]+d[n]\displaystyle y[n] = x[n] + d[n]

工程集成实现

再好的算法,最终也要装进实际系统里才能工作。在夜市场景中,这就好比搭建一个“小智工作站”:麦克风负责采集,降噪模块负责过滤,Whisper 负责推理,最后把文本显示在屏幕上。工程集成要解决的是消息传递、实时性和资源占用问题。

一条典型的音频链路是:麦克风以 16 kHz 采样 → 必要时做 VAD 切分 → 降噪模型逐帧处理 → 送入 Whisper 编码器 → 输出文本。其中流式处理很关键:如果用户正在对着手机说话,你不可能等整段话录完再识别,而是一边采集一边降噪一边转写。此时端到端延迟必须足够低,否则对话会像视频卡顿一样让人不适。

在工程实现时,你还要考虑采样率不匹配、VAD 误判、降噪模型与 Whisper 的接口格式、以及 CPU/GPU 资源占用。一个小技巧是使用流式接口:把音频按 512 或 1024 个采样点切块,每块送入降噪模型后再拼接,最后喂给 Whisper。这样既控制了延迟,又让内存占用保持平稳。

L=Mfs+Tproc\displaystyle L = \frac{M}{f_s} + T_{\text{proc}}
端到端延迟 $L$ 由帧时长和算法处理耗时组成。每帧采集时间取决于帧长 $M$ 与采样率 $f_s$,处理耗时则与降噪和识别模型的计算量有关。
  1. 帧时长$\frac{M}{f_s}$ 是采集一帧音频所需的时间。比如 $M=512$ 帧长、$f_s=16000$ 时,帧时长是 32 毫秒。
    51216000=0.032 s\displaystyle \frac{512}{16000} = 0.032 \text{ s}
  2. 处理耗时$T_{\text{proc}}$ 是降噪和 ASR 推理消耗的时间。理想情况下它小于帧时长,系统才能实时。
    Tproc<Mfs\displaystyle T_{\text{proc}} < \frac{M}{f_s}
  3. 总延迟$L$ 是用户从开始说话到看到文字之间的等待时间,直接影响对话体验。
    L=Mfs+Tproc\displaystyle L = \frac{M}{f_s} + T_{\text{proc}}

性能调优实战

工作站搭好了,但实际运行效果可能还不够好。就像夜市音响要反复调试低音和高音,语音增强系统也需要调优,才能在清晰度、自然度和延迟之间取得平衡。性能调优不是简单地把噪声调到最小,而是让朋友的话最清楚、噪声适当、系统不卡顿。

常见调优点包括:调节谱减法的过减因子 $\alpha$、选择更合适的窗函数、扩充数据增强策略、对深度学习模型做量化部署。评估时不能只看主观感受,还要用客观指标。信噪比提升量 $\Delta \text{SNR}$ 是最直观的指标之一。

调优时要注意,深度学习模型不能只靠模拟数据训练,真实环境中的突发噪声、说话人距离、混响等都要纳入考量。用多种噪声、多种信噪比做数据增强,测试时不断在真实场景录制音频,才能让系统在“夜市”里稳定发挥,真正帮小智记下小李的每一句秘密。

ΔSNR=SNRout−SNRin\displaystyle \Delta \text{SNR} = \text{SNR}_{\text{out}} - \text{SNR}_{\text{in}}
输入信噪比是降噪前的清晰度,输出信噪比是降噪后的清晰度,两者的差值反映了算法带来的增益。
  1. 输入信噪比$\text{SNR}_{\text{in}}$ 是收到带噪语音时计算的信噪比,越低说明夜市越吵。
    SNRin=10log⁡10PxPd\displaystyle \text{SNR}_{\text{in}} = 10\log_{10}\frac{P_x}{P_d}
  2. 输出信噪比$\text{SNR}_{\text{out}}$ 是经过降噪后语音的信噪比,越高说明系统越有效地滤除了噪声。
    SNRout=10log⁡10Px^Pe\displaystyle \text{SNR}_{\text{out}} = 10\log_{10}\frac{P_{\hat{x}}}{P_{e}}
  3. 增量$\Delta \text{SNR}$ 正值代表降噪有效,负数则说明算法反而毁掉了语音。除了 SNR,工程上还会结合 PESQ、STOI 等指标综合评估。
    ΔSNR=SNRout−SNRin>0\displaystyle \Delta \text{SNR} = \text{SNR}_{\text{out}} - \text{SNR}_{\text{in}} > 0

AI 应用场景

视频会议实时降噪

阶段:音频预处理与特征优化

解决的问题:传统视频会议软件在嘈杂环境(如办公室空调声、咖啡厅人声)中,参与者的语音清晰度差,自动字幕经常出错。AI 降噪模型可以实时过滤背景声,让与会者的声音干净送入 ASR,提升字幕和转写准确率。

具体案例:某在线会议平台在接入 Whisper 字幕前,加入一个 U-Net 降噪模块。当参会者在开放式办公区开会时,模块能滤掉键盘敲击和远处交谈声,字幕准确率从 78% 提升到 93%。

智能音箱语音交互

阶段:远场语音唤醒与识别前端

解决的问题:智能音箱距离用户较远,麦克风采集到的语音常混入电视声、厨房噪声,导致唤醒率低、误唤醒多。通过波束成形加深度降噪预处理,可以增强目标方向的语音信号,减少环境干扰。

具体案例:某智能音箱团队在唤醒模型前加入轻量级深度降噪网络,在电视播放场景下唤醒率从 82% 升至 91%,同时误唤醒次数明显降低,用户体验大幅改善。

Python 演示

python50 行
import numpy as np  def generate_noisy_signal(duration=1.0, sr=8000, noise_db=6):    # 生成带噪正弦语音的模拟信号, 噪声强度用 dB 表示    t = np.linspace(0, duration, int(sr * duration), endpoint=False)    x = 0.8 * np.sin(2 * np.pi * 220 * t)    noise = np.random.randn(len(t))    noise /= np.sqrt(np.sum(noise ** 2))    noise *= np.sqrt(np.sum(x ** 2)) / (10 ** (noise_db / 20))    y = x + noise    return y, x  def spectral_subtraction(y, frame_len=256, hop=128, alpha=1.2):    # 频域谱减法: 从带噪音频谱减去噪声谱估计    n = len(y)    windows = []    for start in range(0, n - frame_len + 1, hop):        windows.append(y[start:start + frame_len])    w = np.hanning(frame_len)    specs = np.fft.rfft(np.array(windows) * w, axis=1)    mag = np.abs(specs)    phase = np.angle(specs)    noise_mag = np.mean(mag[:5], axis=0)    clean_mag = np.maximum(mag - alpha * noise_mag[None, :], 0)    clean_specs = clean_mag * np.exp(1j * phase)    frames = np.real(np.fft.irfft(clean_specs, n=frame_len, axis=1)) * w    out = np.zeros(n)    counts = np.zeros(n)    for i, start in enumerate(range(0, n - frame_len + 1, hop)):        out[start:start + frame_len] += frames[i]        counts[start:start + frame_len] += w ** 2    out /= np.maximum(counts, 1e-8)    return out  def snr_db(x, e):    # 信噪比: 信号能量与误差能量之比    return 10 * np.log10(np.sum(x ** 2) / np.sum(e ** 2))  if __name__ == "__main__":    sr = 8000    y, x = generate_noisy_signal(sr=sr)    x_est = spectral_subtraction(y)    snr_in = snr_db(x, y - x)    snr_out = snr_db(x, x_est - x)    print("Input SNR : %.2f dB" % snr_in)    print("Output SNR: %.2f dB" % snr_out)
目的:用 Python 实现一个简易谱减法降噪器,先模拟生成带噪语音,再通过频域谱减恢复干净信号,并输出降噪前后的信噪比。
  1. noise /= np.sqrt(np.sum(noise ** 2))对随机噪声做能量归一化,保证噪声功率与信号功率可比。
  2. specs = np.fft.rfft(np.array(windows) * w, axis=1)对每一帧加窗后做 FFT,得到频域表示。
  3. mag = np.abs(specs)提取幅度谱,用于后续噪声相减。
  4. noise_mag = np.mean(mag[:5], axis=0)用前 5 帧当作无语音段,平均估算噪声谱。
  5. clean_mag = np.maximum(mag - alpha * noise_mag[None, :], 0)执行谱减并将负值截断为 0,避免出现负功率。
  6. out /= np.maximum(counts, 1e-8)用重叠相加的权重和做归一化,防止分帧重建后音量被加倍或削弱。

常见误区

误区很多人以为把噪声全部消掉,朋友的声音就一定最清楚。于是把谱减法的 α 调到极大,或者让降噪模型拼命压制背景。

正解过度降噪会连朋友语音里的高频细节也一并抹掉,就像用橡皮擦铅笔字,用力过猛会把纸擦破。语音增强的目标是提升信噪比和可懂度,而不是追求零噪声。工程上需要在噪声抑制和语音失真之间取平衡,常见的做法是设置噪声下限,避免把语音“掏空”。

为何常见:人耳在安静环境下感觉更舒服,初学者容易把“安静”和“清晰”划等号,忽略了人声本身的自然度。

误区有初学者认为语音增强就是把不同人的声音分开,只留下目标人物,就像降噪耳机能隔离开周围所有人的说话声。

正解语音增强处理的是“单人语音 + 环境噪声”,目标是从带噪信号中恢复一个人的清晰语音。语音分离则处理“多说话人混叠”,需要把不同人的声音拆开。两者输入输出不同,评价指标也不同,不能混为一谈。

为何常见:深度学习模型既能做增强也能做分离,且很多开源项目同时包含两种任务,容易让外行混淆。

误区既然 Whisper 能直接识别 YouTube 视频、嘈杂会议录音,那在工程上完全可以跳过降噪,直接把它塞给模型。

正解Whisper 对噪声确实有一定鲁棒性,但在信噪比低、存在强非平稳噪声(如鸣笛、拍桌声)时,识别错误率会显著上升。降噪预处理相当于先给小智戴上降噪耳机,能明显降低错字率,尤其是在中文等混淆音节较多的语言上。

为何常见:模型展示时选的都是相对清晰的音频,真实世界的突发噪声曝光率不高,导致人们低估了预处理的必要性。

误区谱减法实现简单、效果直观,不少教程都拿它举例,于是初学者认为它可以作为通用降噪方案直接上线。

正解谱减法基于“噪声平稳”的假设,遇到突然出现的汽车鸣笛或拍手声,噪声估计会失准,反而会留下难听的“音乐噪声”。在实际工程中,往往需要 VAD 配合,或在非平稳噪声场景改用深度学习方法。

为何常见:教学示例常用平稳噪声(如白噪声)来演示谱减法,而现实环境的噪声类型远更复杂。

面试题

Q1. 语音增强的首要目标是什么?

单选题 · easy

  • A.把声音响度提升到最大
  • B.完全消除背景中的所有噪声
  • C.提升语音信噪比和可懂度← 正确答案
  • D.将语音直接转换成文字

答案:C。语音增强的核心是让目标语音在噪声中更清晰,即提高信噪比和可懂度。选项 A 是增益控制,B 中的“完全消除”不现实,D 是 ASR 的任务。就像给小智戴上降噪耳机,目的是听清小李的话,而不是把夜市声音全删光。

Q2. 谱减法的核心操作是什么?

单选题 · easy

  • A.在时域减去噪声波形
  • B.在频域减去噪声谱估计← 正确答案
  • C.在倒谱域做同态滤波
  • D.用神经网络回归掩码

答案:B。谱减法在频域计算:先估计噪声幅度谱,再从带噪信号幅度谱中减掉它,最后用带噪信号的相位重建时域信号。选项 A 是时域方法,C 是倒谱处理,D 是深度学习方法。谱减法就像先记住夜市底噪,再把音频频谱里对应的“杂音分量”扣掉。

Q3. 谱减法最常见的伪影是什么?

单选题 · mid

  • A.间歇性音乐噪声← 正确答案
  • B.持续回声残留
  • C.严重削波失真
  • D.瞬态频谱混叠

答案:A。谱减后残留的随机频点会形成忽隐忽现的短音调,听感像“音乐噪声”。回声残留通常与混响有关,削波来自增益过大,混叠来自采样率不足。音乐噪声就像夜市里突然响起的一段收音机杂音,是谱减法过度削减的典型代价。

Q4. 维纳滤波与谱减法的主要区别是什么?

单选题 · mid

  • A.维纳滤波无需噪声估计
  • B.维纳滤波为统计最优估计← 正确答案
  • C.谱减法仅适用非平稳噪声
  • D.维纳滤波会降低采样率

答案:B。维纳滤波基于最小均方误差准则,利用信号与噪声的统计特性最优地估计干净语音;谱减法则是启发式地在频域做幅度相减。A 错误,维纳滤波也需要噪声统计量;C 错误,谱减法假设噪声平稳;D 与采样率无关。就像谱减法靠“硬减底噪”,维纳滤波则根据统计规律动态调节增益。

Q5. VAD 在预处理中的主要作用是什么?

单选题 · mid

  • A.自动调节音量大小
  • B.检测语音段避开静音← 正确答案
  • C.把噪声样本转成语音
  • D.直接加速模型推理

答案:B。VAD 判断当前音频帧是否含人声,只有检测到语音才送入降噪和识别,避免在无人说话的噪声段浪费算力,也避免把噪声误当成语音。A 是自动增益控制,C 错误,D 不是 VAD 的职责。它就像夜市场景中的“闭麦开关”,朋友没说话时先静音。

Q6. Whisper 输入音频一般推荐采用什么采样率?

单选题 · mid

  • A.8 kHz 电话采样标准
  • B.16 kHz 推荐采样率← 正确答案
  • C.44.1 kHz 音乐采样率
  • D.96 kHz 高保真采样率

答案:B。Whisper 内部会将输入统一重采样到 16 kHz,因此在预处理阶段将音频对齐到 16 kHz 能减少信息损失和计算浪费。8 kHz 会丢失高频细节,44.1 kHz 和 96 kHz 过高且会增加传输开销。就像给听写员递材料,规格统一才能保证效率。

Q7. 某算法输出信噪比为 18 dB,输入信噪比为 9 dB,则 ΔSNR 是多少?

单选题 · hard

  • A.-9 dB
  • B.2 dB
  • C.9 dB← 正确答案
  • D.18 dB

答案:C。ΔSNR 定义为输出信噪比减输入信噪比,即 18 - 9 = 9 dB。正值说明降噪带来了增益。A 是反向了,B 是粗心计算,D 把输出值当增量。这个增量就像小智戴上降噪耳机后,“朋友的声音”比“夜市杂音”多出来的清晰优势。

Q8. 以下属于非平稳噪声的有哪些?

多选题 · easy

  • A.恒定空调嗡嗡声
  • B.突然汽车鸣笛声← 正确答案
  • C.断续键盘敲击声← 正确答案
  • D.持续白噪声背景

答案:BC。非平稳噪声的统计特性随时间变化。汽车鸣笛是突发冲击,键盘敲击是断续瞬态,都属于非平稳噪声;恒定空调声和白噪声的功率谱相对稳定,属于平稳噪声。非平稳噪声会让依赖平稳假设的谱减法失效。

Q9. 深度学习降噪常用的模型结构包括哪些?

多选题 · mid

  • A.U-Net 网络← 正确答案
  • B.维纳滤波器
  • C.Transformer 网络← 正确答案
  • D.频域谱减法

答案:AC。U-Net 的编码器-解码器结构能在保留细节的同时提取高层特征,Transformer 适合建模长距离依赖,二者都被广泛应用于语音增强。维纳滤波和谱减法是经典信号处理算法,不属于深度学习结构。就像智能人耳既需要局部感知的“神经末梢”,也需要整体理解的“大脑”。

Q10. 提高语音增强模型在真实场景泛化能力的方法有哪些?

多选题 · hard

  • A.多噪声混合数据增强← 正确答案
  • B.安静房间收集单一语料
  • C.模拟不同信噪比和混响← 正确答案
  • D.固定说话人少量数据

答案:AC。用多种噪声、多种信噪比和混响进行数据增强,能模拟真实世界丰富的声学环境,帮助模型学得更鲁棒。B 和 D 会让模型过拟合单一条件,导致在真实场景中效果下降。这就像让智能人耳多逛几个不同的夜市,而不是只在同一个摊位前训练。