想象你在一家餐厅点了一锅什锦汤:香菇、虾仁、豆腐已经和汤汁融为一体。此刻厨师想把汤恢复成三个碗——香菇碗、虾仁碗、豆腐碗。这几乎不可能,因为味道早已互相渗透。可音频后期里的“音轨分离”偏偏就要做这件逆向分碗的事:录音时人声、吉他、鼓被混音师倒进同一个音频文件,而我们希望把它们再次分出来。这正是 AI 音频技术中最迷人也最棘手的问题之一。 音轨分离(Source Separation)要从一段混合好的音频中,分离出人声、鼓、贝斯、伴奏等独立声源。它不同于简单的“消人声”效果器,而是让模型真正学会“认识汤里每一种食材”。本篇文章会用这锅什锦汤作为贯穿始终的比喻,带你从基本概念走进频谱、掩码、深度网络和工程部署,看看 AI 是如何把这锅汤一碗碗还原回去的。

岗位关联

掌握音轨分离,是 AIGC 音频工程师理解声音数据本质、进入音乐/语音产品落地的关键一步。它能直接支撑 K 歌、播客修复、影视对白增强、智能字幕等一线业务。

目录
  1. 可视化演示
  2. 什么是音轨分离
  3. 混音与频谱基础
  4. 核心方法
  5. 数据与评测
  6. 模型架构
  7. 工程实践
  8. 挑战与展望
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示混合音频信号分离为独立音轨的过程,包含波形分解、频谱分析和分离质量指标。点击切换模式查看不同视图。

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

音轨分离 人声(Voc) 鼓点(Drum) 贝斯(Bass) 吉他(Gtr) SNR=10log(Ps/Pn) 混合信号经频域掩蔽分解为独立源信号

什么是音轨分离

想象你在餐厅点了一锅什锦汤,香菇、虾仁、豆腐已经在锅里互相渗透。现在厨师想把它们恢复成三只碗——香菇碗、虾仁碗、豆腐碗。可一旦食材下锅,它们就不再是独立的个体。音轨分离要做的,正是这种“逆向分碗”:录音时人声、吉他、鼓被混音师倒进同一个文件,而我们希望把每个声源再捞出来。

在数字音频中,这段混合关系可以写成非常朴素的形式:某个时刻话筒收到的信号,等于同时刻所有声源信号的叠加。这就是“一锅汤”的数学表达——汤的味道是各种食材的混合,音频波形也是各路声源的混合。

不过要小心:这锅汤一旦炖好,信息就发生了不可逆的混合。早期人们用盲源分离做数学尝试,如今我们用深度学习让模型“尝过无数锅汤”后学会自动分拣。音轨分离的难点,正在于从一锅看似混沌的浓汤中,分辨出每种食材原本的形状。

x(t)=∑i=1Nsi(t)\displaystyle x(t) = \sum_{i=1}^{N} s_i(t)
混合音频 \(x(t)\) 是所有声源 \(s_1(t), s_2(t), \dots, s_N(t)\) 在同一时刻的线性叠加。分离任务就是从 \(x(t)\) 反推出每个 \(s_i(t)\)。
  1. 混合信号\(x(t)\) 是麦克风最终收到的整锅汤,也就是我们手里的混合音频。
    x(t)x(t)
  2. 声源求和\(\sum\) 表示把所有声源从第 1 个加到第 \(N\) 个,对应“食材全部下锅”。
    ∑i=1N\sum_{i=1}^{N}
  3. 单个声源\(s_i(t)\) 是第 \(i\) 个声源在时刻 \(t\) 的波形,比如单独的人声轨道或单独的鼓点轨道。
    si(t)s_i(t)

混音与频谱基础

只盯着时域波形看,就像用肉眼在一锅滚动的浓汤里找虾仁,几乎无从下手。所以音频工程师换了一种视角:给这锅汤拍一张“X 光片”。在声音处理中,这张 X 光片就是短时傅里叶变换(STFT)得到的频谱图。

短时傅里叶变换会把音频切成许多小片段,再分别做傅里叶变换,从而得到“频率随时间变化”的图像。频谱图横轴是时间,纵轴是频率,颜色深浅代表能量强弱。每种食材在汤里的“颜色”不同:人声集中在某些频段,鼓点又另有分布。这样,分离问题就从“在波形里找信号”变成了“在图片里找各自的颜色区域”。

有了频谱图,分离就有了抓手。我们可以让模型预测一个“透明模板”,也就是时频掩码:每个格子上写着一个 0 到 1 的数字,表示这块能量有多少属于目标声源。这就像给汤的 X 光片盖上镂空挡板,只让特定食材的颜色透过来。

X(f,τ)=∑i=1NSi(f,τ)\displaystyle X(f,\tau) = \sum_{i=1}^{N} S_i(f,\tau)
\(X(f,\tau)\) 是混合音频在频率 \(f\)、时间帧 \(\tau\) 上的频谱值,它同样是各个声源频谱的叠加。频率轴让我们看到了汤里不同食材的颜色。
  1. 频谱值\(X(f,\tau)\) 表示混合信号在第 \(\tau\) 帧、第 \(f\) 个频率点的能量,也就是汤在某个位置的颜色。
    X(f,τ)X(f,\tau)
  2. 对声源频谱求和\(\sum_{i=1}^{N}\) 说明“颜色叠加”依然是线性相加,和时域中的加法对应。
    ∑i=1N\sum_{i=1}^{N}
  3. 单个声源的频谱\(S_i(f,\tau)\) 是第 \(i\) 个声源独立的频谱贡献,比如人声独占的那部分颜色。
    Si(f,τ)S_i(f,\tau)

核心方法

最早的分拣靠的是“数学运气”:盲源分离假设各个声源在统计上相互独立,通过找到一组变换把混合信号拆开。这个方法像厨师凭经验抖锅,希望虾仁能自己弹出来,但应对真实音乐时往往不够稳健。

后来进入监督学习时代:我们准备许多“标准汤谱”——已知混合前的独立声源,让模型反复对比。模型逐渐学会,当看到某种颜色组合时,应该如何分配能量。主流做法有两种:掩码预测和波形重建。掩码预测是在频谱图上画“透明挡板”;波形重建则是让网络直接输出分离后的波形,更像“端到端重新炒一碗单独的菜”。

从传统 ICA,到频谱掩码,再到深度波形重建,音轨分离的工具箱越来越强。核心思想始终不变:给模型足够的先验知识,让它在这锅汤里更快、更准地找到每一种食材。

S^i(f,τ)=Mi(f,τ)⊙X(f,τ)\displaystyle \hat{S}_i(f,\tau) = M_i(f,\tau) \odot X(f,\tau)
模型对混合频谱 \(X\) 的每个格子乘上一个掩码 \(M_i\),得到第 \(i\) 个声源的频谱估计。掩码相当于厨师手里的镂空勺,只捞想捞的食材。
  1. 分离结果\(\hat{S}_i(f,\tau)\) 是第 \(i\) 个声源的频谱估计,也就是我们捞出来的那碗食材。
    S^i(f,τ)\hat{S}_i(f,\tau)
  2. 掩码\(M_i(f,\tau)\) 在 0 到 1 之间取值,表示这一格能量中属于声源 \(i\) 的比例。
    Mi(f,τ)M_i(f,\tau)
  3. 逐元素相乘\(\odot\) 表示两个矩阵对应位置相乘,用透明挡板去过滤频谱图。
    ⊙X(f,τ)\odot X(f,\tau)

数据与评测

光会做汤还不够,怎么知道这碗香菇汤是不是够纯?工程师需要“标准菜谱”来验收。业界常用 MUSDB18 这类开源数据集:它提供多首歌曲的独立分轨和混合后版本,就像同时给你“食材生图”和“成品汤图”。

最常用来打分的是信号失真比(SDR)。它衡量的是:分离出的声音与真实目标声源有多接近。一个更稳定的版本叫尺度不变信号失真比(SI-SDR),它先把估计信号投影到目标方向上,再去掉尺度影响,本质是问:“这碗汤和原汤在味道曲线上重合了多少?”

客观指标虽然重要,但耳朵才是最终裁判。一碗汤颜色看着对,可能一尝还是咸了;分离出的波形 SDR 很高,也可能残留令人烦躁的“音乐伪影”。所以真实项目通常采用客观指标加主观听感双轨验收。

SI-SDR=10log⁡10∥starget∥2∥enoise∥2\displaystyle \text{SI-SDR} = 10 \log_{10} \frac{\lVert s_{\text{target}} \rVert^2}{\lVert e_{\text{noise}} \rVert^2}
\(s_{\text{target}}\) 是真实目标声源,\(e_{\text{noise}}\) 是分离误差。SI-SDR 越大,说明分离出的声音越接近原声。
  1. 目标声源\(s_{\text{target}}\) 是标准答案中的那一轨干净声源,比如只有人声的干音。
    ∥starget∥2\lVert s_{\text{target}} \rVert^2
  2. 分离误差\(e_{\text{noise}}\) 是估计结果与目标之间的差值,也就是汤里混进来的其他味道。
    ∥enoise∥2\lVert e_{\text{noise}} \rVert^2
  3. 取对数放大感知\(10\log_{10}\) 把比值换算成听感上更直观的分贝值,数字越大越好。
    10log⁡10∥starget∥2∥enoise∥210 \log_{10} \frac{\lVert s_{\text{target}} \rVert^2}{\lVert e_{\text{noise}} \rVert^2}

模型架构

现代自动分拣机已经是一条完整流水线。早期 U-Net 被广泛用于频谱图分割,它像一条“传送带-旁路”结构:编码器把汤的照片不断压缩,解码器再逐步放大恢复,跳跃连接则把细节从输入端直接送到输出端,避免颜色模糊。

随后 Conv-TasNet 提出了更彻底的“编码器-分离器-解码器”三件套架构。它不先做 STFT,而是直接从波形中学习一种“隐式频率表示”。编码器负责把波形变成一组“隐藏特征”,分离器通过时序卷积网络生成掩码,解码器再把特征重建成波形。Transformer 方案则进一步引入全局注意力,让模型能同时看到汤的每个角落,而不只是局部窗口。

架构设计的本质,是让模型在“看得细”和“跑得快”之间找平衡。U-Net 保留细节,Conv-TasNet 适合实时落,Transformer 带来长程理解。未来的分拣机,很可能会把这几条传送带组合使用。

y=ReLU(Conv1d(x)),s^=DeConv1d(y⊙m)\displaystyle \mathbf{y} = \text{ReLU}(\text{Conv1d}(\mathbf{x})), \quad \hat{\mathbf{s}} = \text{DeConv1d}(\mathbf{y} \odot \mathbf{m})
波形先经过一维卷积编码成 \(\mathbf{y}\),再与掩码 \(\mathbf{m}\) 相乘,最后经反卷积解码成目标声源。
  1. 编码结果\(\mathbf{y}\) 是编码器从波形 \(\mathbf{x}\) 中提取的隐藏特征,相当于把食材打碎成便于分拣的小颗粒。
    y=ReLU(Conv1d(x))\mathbf{y} = \text{ReLU}(\text{Conv1d}(\mathbf{x}))
  2. 掩码生成分离网络为每个特征生成掩码 \(\mathbf{m}\),决定哪些颗粒该进哪个碗。
    m\mathbf{m}
  3. 重建声源\(\hat{\mathbf{s}}\) 是解码器输出的声源波形,用反卷积把筛选后的颗粒重新拼回完整的菜。
    s^=DeConv1d(y⊙m)\hat{\mathbf{s}} = \text{DeConv1d}(\mathbf{y} \odot \mathbf{m})

工程实践

实验室里能分离曲子,不代表生产环境能用。真实产品是一间中央厨房,讲究流程稳定、出餐迅速。第一步是预处理:统一采样率、做响度归一化、把长音频切成有重叠的帧。切多长、重叠多少,都直接影响模型效率。

训练阶段往往需要数据增强,把同一份食材反复换做法——改变音调、加入噪声、随机混合不同声源,让模型不易“挑食”。部署阶段还要考虑模型大小和推理延迟,移动端甚至要量化到 8bit。最后往往需要后处理:用维纳滤波或软掩码平滑,把那些刺耳的颤音和伪影压下去。

工程中最常见的坑包括:训练和推理采样率不一致、数据里混音风格太单一、模型在服务器上飞快但手机 GPU 跑不动。只有把分帧、增强、推理、后处理串成一条稳定流水线,这锅汤才能从前厨顺利送进千家万户。

Nframes=⌈L−nwinnhop⌉+1\displaystyle N_{\text{frames}} = \left\lceil \frac{L - n_{\text{win}}}{n_{\text{hop}}} \right\rceil + 1
一段长度为 \(L\) 的音频,按窗长 \(n_{\text{win}}\)、步长 \(n_{\text{hop}}\) 分帧,会得到 \(N_{\text{frames}}\) 个处理单元。分帧是多数分离系统的第一道工序。
  1. 音频总长度\(L\) 是输入的采样点数,相当于一锅汤的总量。
    LL
  2. 窗长与步长\(n_{\text{win}}\) 是每一帧的长度,\(n_{\text{hop}}\) 是两次取帧之间迈的步子。
    nwin,nhopn_{\text{win}}, n_{\text{hop}}
  3. 取整加一\(\lceil \cdot \rceil\) 向上取整,再加 1 得到总帧数,确保汤的每一勺都被处理到。
    ⌈L−nwinnhop⌉+1\left\lceil \frac{L - n_{\text{win}}}{n_{\text{hop}}} \right\rceil + 1

挑战与展望

即便有再强的分拣机,什锦汤里还是会有一些煮化了的食材:人声与吉他叠加在同一频段,很难彻底分开;鼓点一多,低频糊成一团。多源分离、跨风格泛化、实时流式处理,是当前最现实的挑战。

实时分离尤其特殊:直播场景下模型不能等整首歌听完再动手,而必须一帧一帧“边看汤边捞”。这就迫使模型成为因果系统——只能使用当前及过去的音频帧,而无法偷看未来。交互式分离则是另一个新方向:用户可以一边听一边调整某个声源的音量,让模型跟着指令动态改掩码。

音轨分离的终点不是“完美还原”,而是在信息已经混合的前提下,尽可能逼近那份原味。这锅高汤注定无法百分之百复原成三种食材,但 AI 已经能让我们在喝汤时,清楚分辨出香菇的韧、虾仁的鲜和豆腐的柔。

s^(t)=f(x(≤t))\displaystyle \hat{s}(t) = f\big(x(\le t)\big)
流式系统中,当前时刻的分离结果 \(\hat{s}(t)\) 只能依赖过去和当前的输入 \(x(\le t)\),不能使用未来信息。
  1. 当前估计\(\hat{s}(t)\) 是时刻 \(t\) 输出的人声或伴奏估计。
    s^(t)\hat{s}(t)
  2. 函数映射\(f\) 表示整个分离模型,它负责从输入音频中提炼目标声源。
    ff
  3. 因果关系\(x(\le t)\) 说明输入只包含 \(t\) 及之前的信号,符合直播场景的实时约束。
    x(≤t)x(\le t)

AI 应用场景

播客与影视后期对白增强

阶段:推理部署

解决的问题:传统降噪靠固定滤波器,容易把语声一起削掉。音轨分离模型先把人声从环境噪声、背景音乐中分离出来,再用分离结果做对白增强,让声音清晰干净。

具体案例:某播客团队用分离模型处理户外采访录音:先抽出人声轨,再对残留噪声做轻量抑制,最终成片中主播说话明显更扎实,背景雨声也不再盖过人声。

音乐创作与 Remix 分轨

阶段:模型推理 + 产品交互

解决的问题:没有原始工程文件时,翻唱、Remix、DJ 混音都需要从成品歌里拆出人声和伴奏。传统消音器会伤音质,AI 分离则能输出更干净的分轨。

具体案例:一位音乐博主拿到一段老歌的混合音频,用 Conv-TasNet 分离出人声和伴奏后,重新调整伴奏音色、加入电子鼓点,做出一版复古 Remix 并发布到短视频平台。

智能字幕与语音检索

阶段:数据预处理

解决的问题:视频识别字幕时,背景音乐和掌声会严重干扰语音识别。先做人声分离,再对分离后的人声做 ASR,可显著降低字错误率。

具体案例:视频转写工具接入了音轨分离模块,把影视剧中的对白、音乐、音效拆开,然后只把对白送入识别引擎,字幕时间轴准确率明显提高。

Python 演示

python47 行
import numpy as np  def stft(x, n_fft=256, hop=128):    # 短时傅里叶变换: 将一段波形切成小帧并转成频谱    frames = []    for start in range(0, len(x) - n_fft + 1, hop):        seg = x[start:start + n_fft] * np.hanning(n_fft)        frames.append(np.fft.rfft(seg))    return np.array(frames)  def istft(S, n_fft=256, hop=128):    # 逆短时傅里叶变换: 把频谱还原成时域波形    n_frames = S.shape[0]    out_len = hop * (n_frames - 1) + n_fft    out = np.zeros(out_len)    for i in range(n_frames):        seg = np.fft.irfft(S[i])        seg = seg * np.hanning(n_fft) * (2.0 / 3.0)        out[i * hop:i * hop + n_fft] += seg    return out  def main():    sr = 8000    t = np.arange(sr) / sr    vocal = 0.6 * np.sin(2 * np.pi * 220 * t)      # 低频人声模拟    accent = 0.3 * np.sin(2 * np.pi * 2200 * t)    # 高频伴奏模拟    mix = vocal + accent                           # 两轨混合成一锅汤     before = 10 * np.log10(np.sum(vocal ** 2) / np.sum((mix - vocal) ** 2))    print("before SDR: %.2f dB" % before)     S = stft(mix)    mask = np.ones_like(S)    mask[:, 20:] = 0.0                             # 只保留低频部分    vocal_est = istft(S * mask)                    # 掩码后反变换回波形     vocal_ref = vocal[:len(vocal_est)]    error = vocal_ref - vocal_est    after = 10 * np.log10(np.sum(vocal_ref ** 2) / np.sum(error ** 2))    print("after SDR: %.2f dB" % after)  if __name__ == "__main__":    main()
目的:用 NumPy 合成一段“人声 + 伴奏”的混合音频,通过构造时频掩码把人声分离出来,并打印分离前后的 SDR 指标,直观体验音轨分离最朴素的频域掩码思路。
  1. mix = vocal + accent模拟混合音频,对应正文中的 \(x(t)=\sum s_i(t)\)。
  2. S = stft(mix)对混合音频做短时傅里叶变换,得到频谱图。
  3. mask[:, 20:] = 0.0构造一个低通掩码,只留下低频人声所在的区域。
  4. vocal_est = istft(S * mask)用掩码过滤频谱,再逆变换回波形。
  5. after = 10 * np.log10(...)计算分离后的 SI-SDR,数值越高代表分离越干净。

常见误区

误区我经常用手机 App 消人声,那个就是音轨分离吧?反正都是把人声弄掉,效果差不多。

正解KTV 消人声常用双声道相位抵消法,它只能对“人声居中、伴奏有立体声差”的歌曲生效,副作用是伴奏质量和低频都会受损。音轨分离是让模型逐帧学习声源分布,能够输出人声和伴奏两条完整分轨,通用性和保真度都远高于消音器。

为何常见:日常生活中最容易接触到的“去人声”工具就是 KTV 消音,因此大家把两者划上了等号。

误区既然知道混合规则是相加,那把混合信号减去一个声源,不就得到另一个声源了吗?

正解混合后,多个声源在同一时间、同一频率上叠加,能量混在一起后无法确定各自贡献比例,就像食材已经入味,无法把盐和糖再分离成晶体。音轨分离本质是一个病态逆问题,任何方法都只能逼近,无法完美还原。

为何常见:从 \(\sum\) 公式看,加法确实有逆运算减法,但实际频谱叠加后信息发生了永久合并,初学者很容易忽略这一点。

误区没有立体声相位差,单声道音频就一锅浆糊,肯定没法做音轨分离。

正解单声道确实更难,因为缺少空间线索。但深度模型可以学习不同声源的频谱纹理和时间模式,比如人声有基频和语速规律,鼓有瞬态冲击特征。只要训练数据够丰富,单声道也能分离出可用的分轨。

为何常见:传统双声道消音法依赖相位差,让人误以为必须靠立体声信息才能分离。

误区模型报告 SDR 提升了 5dB,那肯定说明分离效果非常优秀。

正解SDR 主要衡量波形层面的能量误差,但它无法完全表达人耳对音色、颤音、混响和音乐连贯性的感知。一个模型可能把高频细节全抹掉,SDR 依然不错,但听感像隔着一层棉被。因此工程上必须结合主观听音测试。

为何常见:工程师在论文里习惯用 SDR 量化对比,久而久之让初学者以为它是唯一真理。

误区只要是音轨分离模型,我只要往数据池里疯狂塞歌曲,效果自然蹭蹭涨。

正解数据量只是因素之一。如果训练集全是流行歌,到古典音乐或游戏音效上就会崩溃;如果只混合到 44.1kHz,到 16kHz 语音场景也要重训。数据多样性、标注质量、混音仿真方式往往比绝对数量更关键。

为何常见:深度学习的“大力出奇迹”叙事深入人心,导致大家忽略了数据分布与任务匹配度。

面试题

Q1. 混合音频可以看作多个声源信号的结果,这种关系在数学上通常描述为?

单选题 · easy

  • A.逐元素相乘叠加
  • B.加权线性求和← 正确答案
  • C.非线性调制
  • D.随机卷积混合

答案:B。混合音频是声源信号的线性叠加,正如一锅汤的味道来自多种食材的累加。相乘、非线性调制或卷积都不能刻画典型的混音模型。

Q2. 下列哪些任务会用到音轨分离技术?

多选题 · mid

  • A.卡拉OK 人声消音← 正确答案
  • B.播客后期对白增强← 正确答案
  • C.图像超分辨率
  • D.影视分轨修复← 正确答案

答案:ABD。音轨分离面向音频信号,卡拉OK、播客对白增强、影视分轨修复都是典型场景;图像超分辨率属于视觉任务,与音频分离无关。

Q3. 时频掩码 \(M\) 的取值范围通常是?

单选题 · easy

  • A.任意整数
  • B.0 到 1 之间← 正确答案
  • C.-1 到 1 之间
  • D.全为正无穷

答案:B。软掩码用 0 到 1 表示每个时频格中有多少比例属于目标声源,相当于透明挡板的透过率。超出这个范围通常不具备物理含义。

Q4. 短时傅里叶变换产生的频谱图,横轴和纵轴分别代表?

单选题 · mid

  • A.横轴时间,纵轴频率← 正确答案
  • B.横轴频率,纵轴时间
  • C.横轴声道,纵轴响度
  • D.横轴样本,纵轴比特率

答案:A。短时傅里叶变换按时间帧滑动,因此横轴是时间帧,纵轴是频率,颜色表示能量。这正是模型观察“食材颜色”的视角。

Q5. 关于 SI-SDR 指标,下列说法正确的是?

多选题 · mid

  • A.数值越大表示分离质量越高← 正确答案
  • B.比较估计与目标的保真度← 正确答案
  • C.数值越小表示越干净
  • D.能完全替代人工听感

答案:AB。SI-SDR 衡量估计信号与目标声源的相似度,越大越好。但它只关注波形误差,无法替代人耳对音色和音乐连贯性的主观判断。

Q6. Conv-TasNet 的三个核心模块按顺序是?

单选题 · mid

  • A.编码器、分离网络、解码器← 正确答案
  • B.解码器、编码器、分离网络
  • C.分离网络、编码器、卷积层
  • D.卷积层、池化层、全连接层

答案:A。Conv-TasNet 采用编码器把波形转为隐藏表示,分离网络生成掩码,解码器再重建波形。方向错了,就像把传送带走反了,无法出餐。

Q7. 理想二值掩码中元素通常只取?

单选题 · easy

  • A.只取 0 或 1← 正确答案
  • B.只取 -1 或 1
  • C.可取 0 到 255 的整数
  • D.任意实数均可

答案:A。理想二值掩码是硬决策:每个时频格要么完全属于目标声源,要么完全不属于。它虽简单,却为软掩码提供了理论起点。

Q8. 影响音轨分离模型泛化能力的因素包括?

多选题 · mid

  • A.训练数据集的多样性← 正确答案
  • B.训练与推理采样率一致← 正确答案
  • C.模型参数量越大越稳定
  • D.未见过的乐器组合情况← 正确答案

答案:ABD。数据多样性和采样率匹配直接影响模型迁移效果,未知乐器组合会带来领域漂移。参数量大不等于稳定,反而可能过拟合到训练汤谱上。

Q9. 倒相法(用双声道相减消除人声)为什么难以用于单声道混合音频?

单选题 · hard

  • A.缺少立体声相位差,无法对冲← 正确答案
  • B.单声道信号音量过大
  • C.人声通常不在中间声道
  • D.麦克风采样率不一致

答案:A。倒相法利用人声在左右声道居中、伴奏有相位差的特性,让左右相减后人声被抵消。单声道只有一路信号,没有可抵消的相位差,自然失效。

Q10. 工程中想部署流式实时分离模型,最重要的约束是?

单选题 · hard

  • A.只能依赖当前及过去帧做预测← 正确答案
  • B.必须使用 96kHz 高采样率
  • C.必须缓存完整音频再处理
  • D.禁止使用一切卷积网络

答案:A。实时系统不能等待未来帧,模型必须是因果的。采样率、缓存策略和卷积选择都不是绝对限制,因果性才是流式分离与离线分离的分水岭。