跳转至

语音理解与增强

语音理解关注转写之外的信息,包括说话人、情感、语言、声学事件和对话状态;语音增强则先改善或分离信号。现代系统通常使用预训练语音 Encoder 加任务头,而不是为每个任务重新设计一套手工特征。

快速开始

选择任务后先定义预测单位:帧级、片段级、说话人对级还是波形级。然后按说话人和录音会话切分数据,防止同一个人的相邻片段泄漏到训练集和测试集。建立 Log-Mel + 小型 CNN 基线,再比较冻结和微调预训练 Encoder 的效果。

类别任务至少报告 Macro-F1 和混淆矩阵;验证任务报告 EER;增强任务同时报告信号指标与下游 ASR。若增强后听感变好但 WER 变差,需要判断系统目标究竟是人听还是机器识别。

说话人识别

说话人识别包含闭集辨认和开放集验证。早期矢量量化 (Vector Quantization, VQ) 把 MFCC 映射到说话人码本;GMM-UBM 计算目标说话人与通用背景模型的似然比;i-vector 再把整段语音压缩到低维身份向量。

现代路线使用 TDNN、ResNet 或 ECAPA-TDNN 产生 embedding。设帧表示 \(H\in\mathbb{R}^{B\times T\times D}\),统计或注意力池化得到 \(E\in\mathbb{R}^{B\times D_e}\),分类头 logits 为 \([B,S]\),其中 \(S\) 是训练说话人数。训练常使用 softmax 的角度间隔变体,推理时则比较两个归一化 embedding 的余弦相似度:

\[ s(e_1,e_2)=\frac{e_1^\top e_2}{\lVert e_1\rVert_2\lVert e_2\rVert_2} \]

阈值必须在与部署条件一致的开发集上校准。跨语言、跨设备、短语音、重放和合成语音攻击都要单独测试。

情感与副语言分类

语音情感识别使用内容、基频、能量、语速和音色等线索。标签常由主观标注产生,类别边界与文化、语言和数据集强相关。可用自监督 Encoder 的帧表示加注意力池化预测离散类别,或回归 valence、arousal、dominance。

对于 \(K\) 类任务,logits \(Z\in\mathbb{R}^{B\times K}\)、标签 \(y\in\{1,\dots,K\}^{B}\),使用交叉熵;类别严重不平衡时可加权或重采样,但评测仍要报告每类召回率。不能把说话人身份泄漏当作情感特征:同一说话人跨 split 是最低限度的检查。

VAD、分类与时间定位

语音活动检测 (Voice Activity Detection, VAD) 输出每帧是否含语音,形状通常为 \([B,T,2]\) 或 \([B,T]\)。声学事件分类对整段音频输出类别,事件检测还要输出起止时间。语言识别、口音分类和关键词检测也可使用相同的 Encoder + pooling/帧级头结构。

片段过短会缺少上下文,片段过长则稀释局部事件。部署时应验证滑窗长度、重叠和后处理迟滞,避免边界附近频繁开关。

语音增强与分离

传统谱减法估计噪声谱并从混合谱中减去;维纳滤波根据语音与噪声功率估计构造最小均方误差滤波器。这些方法计算低、可解释,但对非平稳噪声和混响有限。

深度增强可以预测时频 mask、干净频谱或直接生成波形。语音分离从混合信号 \(x=\sum_{i=1}^{S}s_i\) 中恢复多个源。若输出 \(\hat{S}\in\mathbb{R}^{B\times S\times N}\),说话人排列本身没有固定顺序,训练常使用置换不变目标:

\[ \mathcal{L}_{\text{PIT}} =\min_{\pi\in\mathcal{P}_S} \sum_{i=1}^{S}\ell(\hat{s}_i,s_{\pi(i)}) \]

Conv-TasNet 展示了在时域直接学习编码、分离和解码的路线。多通道系统还可利用波束形成和到达方向信息,不能在预处理阶段简单平均声道。

工程检查

现象 优先检查
说话人验证离线很好、线上很差 设备、语言、时长和阈值校准是否匹配
情感模型只预测多数类 类别分布、标注一致性和 Macro-F1
VAD 切掉句首句尾 窗长、迟滞、最短语音和 padding
增强后出现音乐噪声 mask 约束、噪声估计和频谱损失
分离源顺序不稳定 是否使用 PIT,后处理是否绑定说话人
指标提升但下游退化 指标是否与真实消费端一致

所有身份和情感任务都涉及敏感生物特征或推断。数据收集、保留期限、授权范围和偏差评测必须进入系统设计,而不是只在模型发布后补充。