AI VAD报告
总结:建议方案:TEN VAD
优势:超低延迟、极小体积、跨平台支持、高精度
(一)VAD 技术
Voice Activity Detection(语音活动检测) 是一个 用于区分“有人说话”与“静音、噪音、背景声”的技术。
在 AI 场景中,VAD 通常是:
- 对接 语音识别系统(ASR) 的前置模块。
- 起到判断“是否开始/结束讲话”的作用。
- 在 智能对话中用于判断何时打断、何时开始响应。
与语音识别(ASR)的关系
- VAD 是语音识别的前置模块
- 可以防止长时间静音被识别
- 在 AI 语音助手中,VAD + ASR + NLU 构成完整识别逻辑链
对话打断逻辑
- 何时判断用户说完了话?
- 连续静音超过 X ms
- 检测到语音下降趋势(如 intonation 向下)
- 如何打断用户?
- 判断对方说话内容中断点(如“我觉得……”停顿)
- AI语音助手做出反馈:“你是说……对吗?”
(1)音频处理
模拟音频信号 是连续变化的电压或声压值,表示随时间变化的声波。
-
它是一个一维连续函数:
t:时间s(t):对应时刻的音频信号幅度(声压、电压等)
数字音频设备(麦克风、声卡)采样的过程,就是用一定频率取点,把模拟信号变成离散数据点。
如果采样率是 16kHz,就表示:每秒取 16000 个点
每个点记录的就是:采样时间点 和该时刻的幅度值
注意:最终存储时只记录了幅度值序列: 因为时间间隔是等间隔的,所以只需要一组数字就可以表示整段音频。
数组 = [0.01, 0.05, 0.13, -0.06, -0.20, ...] # 这些值就是采样的幅度
每个值叫做 采样值,或 PCM 值(Pulse Code Modulation)。
(2)VAD 的基本原理
| 方式 | 原理 | 说明 |
|---|---|---|
| 基于能量检测 | 语音段能量高于背景噪音 | 简单但不可靠 |
| 基于频谱特征 | 分析MFCC、频谱平坦度等 | 更准确 |
| 基于深度学习 | CNN、RNN、Transformer模型 | 最新主流做法,如 Silero VAD |
前两种方法已经被时代淘汰,这里聚焦于第三种方法:基于深度学习
流程图:
原始音频(16kHz PCM)
↓
分帧 + 特征提取(如 Mel 频谱)
↓
深度神经网络(CNN / RNN / Dilated CNN / Transformer)
↓
帧级语音概率输出(0~1)
↓
阈值判断(是否为语音帧)
↓
语音段聚合 + 时间戳输出
详细解释:
1. 原始音频输入
-
格式:通常为 PCM 格式,采样率多为 16kHz,16-bit
-
为什么 16kHz? 人声主要集中在 0~4kHz,16kHz 是 Nyquist 采样定理的两倍以上
-
表示方式:输入为一维浮点数组,例如:
[0.02, -0.01, 0.05, ..., -0.03]
2. 分帧 + 特征提取
分帧(Framing)
- 通常每帧长度为 25ms(=400点),帧移为 10ms(=160点)
帧移 :相邻两帧的起点间隔时间 假设帧长为 25ms,帧移为 10ms → 意味着相邻两帧