想象一场热闹的火锅聚餐:一锅翻滚的汤底里煮着牛肉、粉丝、虾滑和青菜,味道相互交融,但你只想夹起自己最爱的牛肉。你的筷子仿佛长了眼睛,绕过粉丝、避开虾滑,精准地夹起每一片牛肉——这就是人类与生俱来的“鸡尾酒会效应”:在嘈杂环境中锁定某一个人的声音。可要让机器做到这件事,就像让一个从未下过厨的机器人从火锅里精确捞出牛肉一样困难。如果它只能靠一把固定孔径的漏勺(传统信号处理方法),小食材会漏掉、大食材会卡住;而聪明的做法,是训练一位懂得“食材纹理”的私厨管家(深度学习网络),让他直接观察食材特征,精准下筷。这就是语音分离的核心任务:从混合语音中,把每个人的声音一清二楚地“捞”出来。

岗位关联

语音分离是语音识别、会议转写、助听设备等产品的“前置净化器”。掌握它,你就掌握了AI听懂“嘈杂世界”的第一把钥匙,也是技术面试中证明深度学习功底的硬核考点。

目录
  1. 可视化演示
  2. 鸡尾酒会问题
  3. 语音混合模型
  4. 传统分离方法
  5. 排列不变训练
  6. ConvTasNet架构
  7. 性能评估指标
  8. 工程实践应用
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示多说话人混合信号分离过程:混合波形输入、Conv-TasNet编码器-分离器-解码器架构掩码学习、PIT排列不变训练寻找最优匹配,切换步骤查看。

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

混合信号分离 S1+S2混合为单一信号MIX x(t)=s1(t)+s2(t) 单通道欠定问题需深度学习求解

鸡尾酒会问题

走进一间觥筹交错的宴会厅,你能一边和朋友聊天,一边自动忽略背景音乐、碰杯声和其他人的交谈。这种神奇能力让1953年的科学家Colin Cherry着迷——他把它命名为“鸡尾酒会效应”,并提出了一个朴素的问题:能不能让机器也具备这种“选择性听觉”?这个问题的学术版就是鸡尾酒会问题:给定一段由多人同时说话混合而成的语音,机器要还原出其中每一个人的独立语音。

放在火锅的比喻里:人类像是天生会用筷子的老食客,而机器是只有一把勺子的新手——面对煮在一起的食材,它不知道该先捞哪个、怎么捞。更麻烦的是,机器不能像人一样用“注意力”来临时屏蔽其他声音,它必须从物理信号层面把混合音拆开。这不仅是信号处理的难题,更是衡量人工智能是否真正“听懂”世界的试金石。

鸡尾酒会问题之所以重要,是因为几乎所有真实语音场景都存在“多说话人叠加”:电话会议、餐厅点餐、街头采访。早期的语音识别系统在安静环境下表现优异,一旦进入嘈杂多人场景就溃不成军。因此,语音分离被看作是语音识别、说话人验证、助听设备等应用的“前置净化器”。谁能先干净地捞出“目标牛肉”,谁就能让下游任务统统受益。

语音混合模型

回到火锅汤底:为什么汤里能同时尝出牛肉和粉丝的味道?因为食材的味道在汤里“叠加”了。语音混合也遵循同样的加法原则——在一段时间内,多个说话人同时发声,麦克风采集到的信号近似等于各说话人信号之和。这个直觉在数学上就是语音混合模型:

模型虽简单,但语音并非“一块静止的食材”,而是随时间剧烈变化的信号。为了刻画这种变化,研究者把波形切成一帧一帧短片段,再对每一帧做傅里叶变换,得到“时频表示”——把一段语音变成一张二维图:横轴是时间帧,纵轴是频率,颜色深浅代表能量大小。在这张“时频谱图”上,不同说话人的语音呈现出不同的明暗纹理,于是分离问题变成了图像分割问题:在每个时频格子上判断“这块属于谁”。

掩码(Mask)的概念由此诞生:给每一个时频格子乘一个0到1之间的系数,属于目标说话人的格子保留(乘1),属于其他人的格子抑制(乘0)。这就好比管家拿到一张“食材分布图”,用标注贴纸标出“哪些格子里是牛肉”。在语音分离里,这张“贴纸”就是掩码,而一切分离算法的核心,都在于如何得到一张足够精准的掩码。

x(t)=∑i=1Csi(t)\displaystyle x(t) = \sum_{i=1}^{C} s_i(t)
  1. 混合信号$x(t)$ 表示麦克风采集到的混合语音在时刻 $t$ 的采样值,是后续所有处理的输入。
    x(t)x(t)
  2. 求和运算$\displaystyle\sum_{i=1}^{C}$ 把 $C$ 个说话人的贡献累加在一起,对应火锅汤底中各食材味道的叠加。
    ∑i=1C\sum_{i=1}^{C}
  3. 独立语音$s_i(t)$ 是第 $i$ 个说话人若单独发声时的信号,是我们最终想要“捞”出来的目标食材。
    si(t)s_i(t)
  4. 说话人总数$C$ 表示混合语音中的说话人个数,双人分离时 $C=2$,这也是学术研究中最常见的设定。
    CC

传统分离方法

如果用漏勺捞火锅里的牛肉,勺眼大小是固定的:勺眼大了,小颗粒的虾滑碎屑跟着漏掉;勺眼小了,大块的牛筋又卡不进去。传统语音分离方法就像这把固定孔径的漏勺——它们基于固定的数学规则来处理语音,而不是根据“食材”的样子自适应调整。

谱减法是最直观的一类:先在无语音片段估计出噪声频谱,再从混合频谱中“减去”它。原理简单,但噪声估计稍有偏差,分离结果就会出现刺耳的“音乐噪声”——像漏勺搅动汤底时带起的一团浑浊。波束形成则换了个思路:用多个麦克风组成阵列,利用声源到达不同麦克风的时间差,从空间方位上“指向”目标说话人。它像一位只认座位的服务员,只给固定餐桌的客人上菜——但如果两位说话人位置很近,它就束手无策了。

为了给所有方法设定一个“理论天花板”,研究者定义了理想二值掩码(IBM):假设我们事先知道每个说话人的真实频谱,在每个时频格子上选择能量更大的说话人,让它的语音通过。这个判决规则写成公式:

IBM的意义在于为所有分离算法提供一把“标准尺”:如果一个模型的性能超越了IBM,说明它不仅能判断“谁能量大”,还能捕捉到更精细的语音结构。然而IBM本身无法在真实系统中实现——没有任何麦克风能直接告诉你“这是说话人1的频谱”。传统方法止步于此,深度学习登场。

M(t,f)={1if ∣S1(t,f)∣>∣S2(t,f)∣0otherwise\displaystyle M(t,f) = \begin{cases} 1 & \text{if } |S_1(t,f)| > |S_2(t,f)| \\ 0 & \text{otherwise} \end{cases}
  1. 掩码矩阵$M(t,f)$ 是一张由0和1组成的二维判决表,每个格子存储一条“该让谁的语音通过”的指令。
    M(t,f)M(t,f)
  2. 时频单元$(t,f)$ 表示第 $t$ 帧、第 $f$ 个频点,是短时傅里叶变换把波形切成的小格子。
    (t,f)(t,f)
  3. 能量比较$|S_1(t,f)| > |S_2(t,f)|$ 判断说话人1在该格子的能量是否强于说话人2,谁强就放谁。
    ∣S1(t,f)∣>∣S2(t,f)∣|S_1(t,f)| > |S_2(t,f)|
  4. 分段判决$\begin{cases} 1 & \cdots \\ 0 & \text{otherwise} \end{cases}$ 按能量比较结果输出二值掩码。IBM之所以“理想”,是因为它假定你已知道真实频谱,现实中这个信息无法直接获取。
    {1if ∣S1∣>∣S2∣0otherwise\begin{cases} 1 & \text{if } |S_1|>|S_2| \\ 0 & \text{otherwise} \end{cases}

排列不变训练

管家从火锅里一口气夹出了两盘牛肉,可哪盘该端给A桌,哪盘该端给B桌?如果端错了,客人虽然吃的还是牛肉,却会大发脾气——“我要的不是这份!”这个看似可笑的场景,正是多说话人分离训练中的核心难题:网络输出两个(或多个)分离信号,但输出的通道顺序与真实的说话人身份没有天然对应关系。

如果训练时强行固定“输出通道1必须对应说话人A、通道2对应说话人B”,网络可能永远学不会——因为初始化不同,通道1的模型可能天然更擅长建模说话人B的声音。2017年,Yu等人提出排列不变训练(PIT),其思想朴素而巧妙:训练时不再固定配对,而是尝试所有可能的通道-说话人配对方式,取损失最小的那一种作为最终训练目标。这就好比管家先把所有菜夹出来放到餐车(输出通道),再根据“哪份菜更像哪桌客人点的”来分配,只要最终每桌都吃上了对的菜就行。

PIT的损失函数定义为所有排列中最小的一对一损失:

PIT让网络不再纠结“我应该输出谁”,而是专注于“怎样把每个人声都分干净”。它像一位聪明的餐厅领班:不固定谁负责哪桌,而是根据每桌客人的需求动态排班,最终让所有客人都满意。这个训练策略已经成为多说话人分离的标准范式,后来的时域方法也普遍沿用PIT作为损失函数。

LPIT=min⁡π∈P∑i=1CL(s^π(i), si)\displaystyle \mathcal{L}_{\text{PIT}} = \min_{\pi \in \mathcal{P}} \sum_{i=1}^{C} \mathcal{L}\big(\hat{s}_{\pi(i)},\, s_i\big)
  1. 损失函数$\mathcal{L}$ 衡量两个信号的差异,如负SI-SNR或均方误差,数值越小代表分离质量越高。
    L\mathcal{L}
  2. 估计信号$\hat{s}_{\pi(i)}$ 表示第 $\pi(i)$ 号输出通道给出的估计语音,下标由排列 $\pi$ 决定。
    s^π(i)\hat{s}_{\pi(i)}
  3. 排列搜索$\pi \in \mathcal{P}$ 表示遍历所有可能的通道-说话人配对方案。双说话人时只有2种排列,三说话人时有6种。
    π∈P\pi \in \mathcal{P}
  4. 最小化操作$\min$ 在所有排列中挑选损失最小的配对,这正是“排列不变”的精髓——怎么配结果好,就按那个方向更新网络。
    min⁡π∈P\displaystyle\min_{\pi \in \mathcal{P}}

ConvTasNet架构

漏勺不够用,那就换一位真正的“私厨管家”——他不需要滤网,而是直接观察食材的纹理、色泽和弹性,精准下筷。2019年,Luo等人在此思路下提出了Conv-TasNet:彻底抛弃短时傅里叶变换,直接在时域波形上学习分离掩码。

为什么“不用漏勺”是革命性的?传统频域方法先对混合信号做STFT,得到频谱幅度,估计掩码后再用混合信号的相位进行逆变换重建语音。但相位信息一旦受损,重建出的语音就会出现严重的畸变——这就像漏勺捞食材时,把食材的“形状”破坏了,即使捞出来也看不出原貌。Conv-TasNet绕过STFT,直接用一维卷积编码原始波形,从底层特征中学出掩码,从根源上避免了相位重建问题。

Conv-TasNet的结构可以分为三部分:编码器(Encoder)用一维卷积把混合波形映射成高维特征,相当于管家“凝神观察食材纹理”;分离模块由时间卷积网络(TCN)堆叠而成,对特征序列进行时域建模,输出每个说话人的掩码;解码器(Decoder)用转置卷积把掩码后的特征重建为时域波形。整个流程可以用一个公式概括:

在WSJ0-2mix基准上,Conv-TasNet的SI-SNR达到了18.8 dB,首次超越理想二值掩码(13.8 dB)约5个分贝——这相当于管家不仅精准夹出了牛肉,还比“理论上完美的漏勺”更懂食材。此外,它的推理速度远超循环网络,适用于实时语音分离场景。Conv-TasNet以“时域端到端+卷积TCN”的组合,确立了新一代语音分离架构的范式。

s^k=D(E(x)⊙mk)\displaystyle \hat{s}_k = D\big(E(x) \odot m_k\big)
  1. 编码器$E(x)$ 用一维卷积把混合波形 $x$ 编码为高维特征,相当于管家第一眼形成的“食材纹理表象”。
    E(x)E(x)
  2. 分离掩码$m_k$ 是第 $k$ 个说话人的掩码,取值0到1之间,表示特征中每个成分的保留比例。
    mkm_k
  3. 逐元素相乘$\odot$ 将掩码逐位作用到特征上,实现“抑制他人、保留目标说话人”的调制。
    ⊙\odot
  4. 解码器$D(\cdot)$ 用转置卷积把掩码后的特征映射回时域,产出第 $k$ 个说话人的波形估计 $\hat{s}_k$。
    D(E(x)⊙mk)D\big(E(x) \odot m_k\big)

性能评估指标

管家干得好不好,不能光靠嘴说,得有一套“评分标准”。语音分离领域同样有几位严格的“评委”:SI-SNR、PESQ和STOI。它们从不同角度给分离结果打分,共同构成衡量模型性能的“裁判团”。

SI-SNR(尺度不变信噪比)是目前学术界最常用的核心指标。它先对估计信号做幅度尺度校正(消除音量差异的影响),再计算校正后的目标分量与残差噪声的能量比,最后转换为分贝。SI-SNR公式如下:

除SI-SNR外,PESQ是早期的ITU-T标准,输出-0.5到4.5的打分,衡量感知语音质量;STOI则专注于可懂度,模拟人耳在噪声中的理解能力。三位评委各有所长:SI-SNR严格衡量信号保真度,PESQ贴近人耳主观感受,STOI预测“人能不能听懂”。研究者通常同时报告多个指标,以全面评估分离系统——就像米其林评审既看味道也看摆盘。

SI-SNR=10log⁡10∥starget∥2∥enoise∥2\displaystyle \text{SI-SNR} = 10\log_{10}\frac{\|\mathbf{s}_{\text{target}}\|^2}{\|\mathbf{e}_{\text{noise}}\|^2}
  1. 目标分量$\mathbf{s}_{\text{target}}$ 是把估计信号按参考信号方向投影后的分量,代表“对准目标说话人的那部分能量”。
    starget\mathbf{s}_{\text{target}}
  2. 残差噪声$\mathbf{e}_{\text{noise}}$ 是估计信号减去目标分量后的残余,代表分离后残留的串扰和失真。
    enoise\mathbf{e}_{\text{noise}}
  3. 能量计算$\|\cdot\|^2$ 表示信号能量,即所有采样点的平方和,对应于一个信号的“总功率”。
    ∥⋅∥2\|\cdot\|^2
  4. 对数尺度$10\log_{10}$ 将比值转为分贝单位,与人耳对声音强度的对数感知更贴近。
    10log⁡1010\log_{10}

工程实践应用

这位精通“火锅”的管家如今已被请进了千家万户。在各种真实场景中,语音分离不再是学术象牙塔里的摆设,而是支撑产品体验的核心模块。

在语音识别前端,分离器被放在麦克风和识别引擎之间,先把“多人混声”净化成“单人清晰语音”,让语音助手在嘈杂客厅也能准确唤醒和听写。在会议系统中,一台会议麦克风可能同时收录多位发言人的声音,分离器把他们逐一分出,再结合说话人识别标出“谁在什么时间说了什么”,自动生成会议纪要。在助听设备中,分离器实时增强佩戴者正前方的目标说话人、抑制周围干扰,帮助听障人士在餐厅聚会中重新找回“对话的从容”。

这些应用背后都共享同一套PIT+Conv-TasNet的技术底座。可以说,从火锅餐桌到AI产品,那位“精准下筷的管家”已经走出了厨房,成为了智能听觉时代的核心角色。

AI 应用场景

智能会议纪要系统

阶段:数据预处理与前端增强

解决的问题:传统会议录音直接送入语音识别引擎时,多人同时发言会互相串扰,识别率大幅下降;离线人工整理纪要又耗时费力。语音分离把混合录音先拆分成多条单人音轨,再逐一转写,显著提升识别准确率和可读性。

具体案例:某互联网公司的智能会议平板,内置麦克风阵列采集会议室声音。系统先运行语音分离模型将不同发言人的声音分开,再配合说话人声纹识别标注身份,会议结束后自动生成带发言人标签的文字纪要。实测在三人讨论场景下,转写错误率下降超过40%。

助听器定向听觉增强

阶段:实时信号分离与增强

解决的问题:传统助听器用固定波束形成指向正前方,但面对移动的说话人或突发干扰声时效果欠佳。基于深度学习的语音分离可以动态学习掩码,在每一时刻自适应地保留目标说话人、抑制周围环境人声。

具体案例:某医疗科技公司的下一代助听器芯片中部署了轻量化的TCN分离模块,采样率16kHz,延迟控制在5毫秒以内。佩戴者站在嘈杂餐厅中面对朋友聊天时,设备实时分离出朋友的声音并放大,同时压缩背景噪声。用户调研显示对话舒适度评分提升60%。

语音助手远场唤醒

阶段:前端语音增强

解决的问题:智能音箱在播放音乐或多人交谈时,唤醒词“小X小X”经常被忽略或误唤醒。语音分离作为前端模块,先把唤醒词对应的说话人信号分离出来,再送入唤醒检测器。

具体案例:某智能音箱产品在固件升级中加入轻量级语音分离模块后,5米远场唤醒率从82%提升至95%,误唤醒次数降低三分之二。团队将分离模块量化为8bit整数模型,运行在DSP上仅占用12ms系统延迟。

Python 演示

python49 行
import numpy as npimport itertools  def si_snr(estimate, target, eps=1e-8):    target = target - np.mean(target)    estimate = estimate - np.mean(estimate)    ref = np.sum(target * target) + eps    scale = np.dot(estimate, target) / ref    s_target = scale * target    e_noise = estimate - s_target    snr = 10 * np.log10(        np.sum(s_target * s_target) /        (np.sum(e_noise * e_noise) + eps))    return snr  def pit_loss(estimates, targets):    num_spk = len(targets)    best_perm = None    best_loss = float("inf")    for perm in itertools.permutations(range(num_spk)):        loss = 0.0        for i in range(num_spk):            loss += -si_snr(estimates[i], targets[perm[i]])        if loss < best_loss:            best_loss = loss            best_perm = perm    return best_loss, best_perm  def main():    np.random.seed(0)    rate = 16000    t = np.arange(rate) / rate    s1 = np.sin(2 * np.pi * 300 * t)    s2 = np.sin(2 * np.pi * 800 * t)    mix = s1 + s2    e1 = s1 + 0.08 * np.random.randn(rate)    e2 = s2 + 0.08 * np.random.randn(rate)    loss, perm = pit_loss([e1, e2], [s1, s2])    print("PIT loss: {:.4f}".format(loss))    print("best permutation: {}".format(perm))    print("si_snr(e1,s1): {:.2f} dB".format(si_snr(e1, s1)))    print("mix length: {} samples".format(len(mix)))  if __name__ == "__main__":    main()
目的:用numpy实现语音分离中两个核心概念——SI-SNR评估指标和排列不变训练(PIT)损失,在一个双说话人模拟场景中演示如何找到最优的通道-说话人配对。
  1. def si_snr(estimate, target, eps=1e-8):定义尺度不变信噪比函数,eps 防止除零。
  2. target = target - np.mean(target)去除直流分量,让信号只保留交流成分。
  3. scale = np.dot(estimate, target) / ref计算估计信号在目标方向上的投影比例,消除幅度尺度影响。
  4. s_target = scale * target得到尺度校正后的目标分量,即“对准目标的那部分能量”。
  5. for perm in itertools.permutations(range(num_spk)):枚举所有通道排列方式,这是PIT的核心。
  6. loss += -si_snr(estimates[i], targets[perm[i]])对每种排列计算负SI-SNR损失,数值越小表示分离越好。
  7. if loss < best_loss:记录当前最优排列,这就是“排列不变”的含义。
  8. np.sin(2 * np.pi * 300 * t)生成300Hz和800Hz两个纯音模拟不同说话人,便于直观验证。

常见误区

误区我以为排列不变训练是一种推理阶段的技巧——模型输出结果后,需要再跑一遍PIT把通道对应关系“调正”才能交付给下游任务。

正解PIT只发生在训练阶段,它决定了“用哪个排列的损失来更新梯度”。推理时,网络已经隐式学习了稳定的特征表达,输出通道与说话人的对应是固定的(尽管训练时通道顺序可互换)。就像管家培训时反复练习“识别食材纹理”,上岗后一眼就知道哪盘是牛肉,不需要再对着菜单核对。

为何常见:PIT的名字带“排列”,容易让人误以为推理时也要做排列搜索;实际上训练和推理的职责被混淆了。

误区老师说理想二值掩码是“理想”的,那它肯定是分离效果的天花板,任何模型都不可能超过它。

正解IBM的“理想”建立在“已知每个说话人真实频谱”这一不现实的前提上,它只是传统频域掩码框架下的参考基准。Conv-TasNet直接在时域学习软掩码,避免了STFT的相位失真,在公开数据集上SI-SNR已经显著超过IBM。好比“完美漏勺”理论上捞得干净,但熟练的管家徒手也能夹得更准——前提是比漏勺更懂食材。

为何常见:“理想”二字的字面误导,加上很多教材把IBM描述为上限,忽略了它成立的前提假设。

误区Conv-TasNet在时域波形上做卷积,所以它不关心频率信息,纯粹按波形形状分离。

正解一维卷积的卷积核本身就可以视为一组学习得到的滤波器组,其作用等价于自适应地提取频带特征。TCN的感受野覆盖长时间上下文,也隐式建模了音高、共振峰等频率结构。时域方法的本质不是“抛弃频率”,而是“让网络自己决定用什么样的频率表示”,避免手工STFT的固定分辨率限制。

为何常见:把“输入是时域波形”误当成“没有频率建模”,忽略了卷积核的频谱含义。

面试题

Q1. 语音分离中的“鸡尾酒会问题”指什么?

单选题 · easy

  • A.从混合语音中分离出各说话人← 正确答案
  • B.增强单个说话人的音量
  • C.识别说话人的身份信息
  • D.降低录音设备的底噪

答案:A。鸡尾酒会问题指从多人同时说话的混合信号中分离出每个说话人的独立语音。B是单通道增强,C是说话人识别,D是降噪,三者都不是多说话人分离的核心目标。

Q2. 排列不变训练PIT主要解决什么问题?

单选题 · easy

  • A.网络训练时的梯度消失
  • B.输出通道与说话人对应← 正确答案
  • C.训练数据的标注成本
  • D.模型推理时的资源消耗

答案:B。PIT解决的是多输出分离网络中“哪个输出对应哪个说话人”的歧义。它枚举所有排列选择最小损失来更新梯度。A是优化问题,C是数据问题,D是工程问题,均与PIT无关。

Q3. 下列属于Conv-TasNet优势的有哪些?

多选题 · mid

  • A.直接在时域学习分离掩码← 正确答案
  • B.避免短时傅里叶相位问题← 正确答案
  • C.不需要任何训练数据
  • D.结构必然比频域方法更小

答案:AB。Conv-TasNet用一维卷积在时域波形上学习掩码,绕开了STFT的相位重建难题。C错误,任何深度模型都需要训练数据;D错误,模型大小取决于设计,不因时域/频域而必然更小。

Q4. 理想二值掩码IBM的核心特点是什么?

单选题 · mid

  • A.在真实系统中可直接获取
  • B.需要真实语音频谱先验← 正确答案
  • C.无法作为性能参考基准
  • D.只适用于单说话人场景

答案:B。IBM假设已知每个说话人的真实频谱,在每个时频单元保留能量更大者。它因这一先验而“理想”,现实中无法直接获取,但可作为传统频域方法的性能基准。

Q5. SI-SNR指标数值越大表示什么?

单选题 · mid

  • A.分离信号的噪声污染越少← 正确答案
  • B.混合信号的能量占比越高
  • C.两个说话人的声音越相似
  • D.分离模型的计算速度越快

答案:A。SI-SNR是估计信号中目标分量与残差噪声的能量比(分贝)。数值越大说明残差噪声越小、分离越干净。B是混合信号性质,C与可分离性负相关,D是效率指标。

Q6. 关于PIT损失函数说法正确的有哪些?

多选题 · mid

  • A.枚举全部排列选择最小损失← 正确答案
  • B.排列数量随说话人指数增长← 正确答案
  • C.推理时也需要排列搜索
  • D.只需随机选择一个排列即可

答案:AB。PIT遍历所有排列取损失最小的方案作为梯度更新目标;排列数等于说话人数的阶乘,因此指数增长。C错误,推理时不需要排列搜索;D错误,随机选取无法解决对应歧义。

Q7. 谱减法的主要缺点是什么?

单选题 · easy

  • A.需要多个麦克风采集信号
  • B.噪声估计不准产生音乐噪声← 正确答案
  • C.只能处理静音环境语音
  • D.计算复杂度高于深度学习

答案:B。谱减法从混合频谱中减去估计的噪声谱,若噪声估计不准确,会出现随机的、刺耳的“音乐噪声”。A是波束形成的特点,C和D不符。

Q8. Conv-TasNet中解码器的主要作用是什么?

单选题 · hard

  • A.将特征信号重建为时域波形← 正确答案
  • B.将时域波形转换成频谱图
  • C.对掩码进行二值化判决
  • D.将多个通道混合为单通道

答案:A。解码器(转置卷积)把经过掩码调制的特征表示映射回时域波形,输出分离后的语音。B是分析端而非合成端,C与软掩码理念不符,D与分离方向相反。

Q9. 语音分离的典型工程应用包括哪些?

多选题 · mid

  • A.语音识别前的信号增强← 正确答案
  • B.会议系统的多发言人分离← 正确答案
  • C.图像数据集的自动标注
  • D.助听器目标说话人增强← 正确答案

答案:ABD。语音分离广泛用于语音识别前端、会议系统和助听设备。C是计算机视觉任务,与语音分离无关。

Q10. 混合语音信号的数学模型近似是什么?

单选题 · easy

  • A.各说话人信号的卷积
  • B.各说话人信号的线性叠加← 正确答案
  • C.各说话人信号的频率乘积
  • D.各说话人信号的时域差分

答案:B。在理想无混响条件下,混合信号近似为各说话人信号之和,即线性叠加模型。卷积对应混响场景,乘积和差分在标准混合模型中均不成立。