Ten Vad
模型简介
模型特点
模型能力
使用案例
🚀 TEN VAD
TEN VAD 是一款专为企业打造的实时语音活动检测系统,能提供精准的帧级语音活动检测。相较于行业常用的 WebRTC VAD 和 Silero VAD,它不仅精度更高,而且计算复杂度更低、内存占用更少,能显著降低对话式 AI 系统的端到端响应和轮次检测延迟。
🚀 快速开始
本项目支持通过动态库链接在五大主流平台上使用,具体信息如下:
平台 | 动态库 | 支持架构 | 接口语言 | 头文件 | 备注 |
---|---|---|---|---|---|
Linux | libten_vad.so | x64 | Python, C | ten_vad.h ten_vad.py |
|
Windows | ten_vad.dll | x64, x86 | C | ten_vad.h ten_vad.py |
|
macOS | ten_vad.framework | arm64, x86_64 | C | ten_vad.h ten_vad.py |
|
Android | libten_vad.so | arm64 - v8a, armeabi - v7a | C | ten_vad.h ten_vad.py |
|
iOS | ten_vad.framework | arm64 | C | ten_vad.h ten_vad.py |
1. 非模拟器 2. 非 iPad |
Python 使用方法
1. Linux
依赖要求
- numpy(已验证版本 1.17.4/1.26.4)
- scipy(版本 >= 1.5.0)
- scikit - learn(已验证版本 1.2.2/1.5.0,用于绘制 PR 曲线)
- matplotlib(已验证版本 3.1.3/3.10.0,用于绘制 PR 曲线)
- torchaudio(已验证版本 2.2.2,用于绘制 PR 曲线)
- Python 版本 3.8.19/3.10.14 已验证
注意:你可以使用上述包的其他版本,但我们未对其他版本进行测试。
库仅依赖于 numpy,你需要通过 requirements.txt 安装依赖:
pip install -r requirements.txt
若要运行演示或绘制 PR 曲线,你需要安装以下依赖:
pip install -r ./examples/requirements.txt
使用方式
注意:在 Python 中使用时,你可以通过 git clone 或 pip 两种方式。
通过 git clone:
- 克隆仓库
git clone https://huggingface.co/TEN-framework/ten-vad
- 进入示例目录
cd ./examples
- 测试
python test.py s0724-s0730.wav out.txt
通过 pip:
- 通过 pip 安装
pip install -U --force-reinstall -v git+https://huggingface.co/TEN-framework/ten-vad
- 编写你自己的用例并导入类,你可以参考 ten_vad.py 中 TenVAD 类的属性。
from ten_vad import TenVad
C 使用方法
构建脚本
位于 examples/ 目录下:
- Linux: build - and - deploy - linux.sh
- Windows: build - and - deploy - windows.bat
- macOS: build - and - deploy - mac.sh
- Android: build - and - deploy - android.sh
- iOS: build - and - deploy - ios.sh
动态库配置
运行时库路径配置:
- Linux/Android: LD_LIBRARY_PATH
- macOS: DYLD_FRAMEWORK_PATH
- Windows: 可执行目录中的 DLL 或系统 PATH
自定义配置
- 修改特定平台的构建脚本
- 调整 CMakeLists.txt
- 配置工具链和架构设置
使用概述
- 进入 examples/ 目录
- 执行特定平台的构建脚本
- 配置动态库路径
- 使用示例音频 s0724 - s0730.wav 运行演示
- 处理结果将保存到 out.txt
各平台的详细使用方法如下:
1. Linux
依赖要求
- Clang(例如已验证版本 6.0.0 - 1ubuntu2)
- CMake
- 终端
使用方法
1) cd ./examples
2) ./build-and-deploy-linux.sh
2. Windows
依赖要求
- Visual Studio(已验证版本 2017, 2019, 2022)
- CMake(已验证版本 3.26.0 - rc6)
- 终端(MINGW64 或 powershell)
使用方法
1) cd ./examples
2) 在 "build-and-deploy-windows.bat" 中配置你偏好的设置:
- 架构(默认:x64)
- Visual Studio 版本(默认:2019)
3) ./build-and-deploy-windows.bat
3. macOS
依赖要求
- Xcode(已验证版本 15.2)
- CMake(已验证版本 3.19.2)
使用方法
1) cd ./examples
2) 在 "build-and-deploy-mac.sh" 中配置目标架构:
- 默认:arm64(Apple Silicon)
- 可选:x86_64(Intel)
3) ./build-and-deploy-mac.sh
4. Android
依赖要求
- NDK(r25b,macOS 已验证)
- CMake(3.19.2,macOS 已验证)
- adb(1.0.41,macOS 已验证)
使用方法
1) cd ./examples
2) export ANDROID_NDK=/path/to/android-ndk # 替换为你的 NDK 安装路径
3) 在 "build-and-deploy-android.sh" 中配置构建设置:
- 架构:arm64-v8a(默认)或 armeabi-v7a
- 工具链:aarch64-linux-android-clang(默认)或自定义 NDK 工具链
4) ./build-and-deploy-android.sh
5. iOS
依赖要求
- Xcode(15.2,macOS 已验证)
- CMake(3.19.2,macOS 已验证)
使用方法
- 进入示例目录
cd ./examples
- 为 iOS 构建创建 Xcode 项目文件
./build-and-deploy-ios.sh
- 按照以下步骤在 iOS 设备上进行构建和测试: 3.1. 使用 Xcode 打开 .xcodeproj 文件:a) cd ./build - ios,b) open ./ten_vad_demo.xcodeproj 3.2. 在 Xcode IDE 中,选择 ten_vad_demo 目标(应检查:Edit Scheme → Run → Release),然后选择你的 iOS 设备(非模拟器)。 3.3. 将 ten_vad/lib/iOS/ten_vad.framework 拖到 "Frameworks, Libraries, and Embedded Content" 中(在 TARGETS → ten_vad_demo → ten_vad_demo → General 中,应将 Embed 设置为 "Embed & Sign"),或者通过 "Frameworks, Libraries, and Embedded Content" → "+" → Add Other... → Add Files... 直接添加。 注意:如果未完成此步骤,你可能会遇到以下运行时错误:"dyld: Library not loaded: @rpath/ten_vad.framework/ten_vad"。 3.4. 配置 iOS 设备签名: - 在 TARGETS → ten_vad_demo → Signing & Capabilities → Signing 中: - 修改 Bundle Identifier:将 "com.yourcompany" 修改为你自己的; - 指定 Provisioning Profile。 - 在 TARGETS → ten_vad_demo → Build Settings → Signing → Code Signing Identity 中: - 指定你的证书。 3.5. 在 Xcode 中构建并在你的设备上运行演示。
✨ 主要特性
1. 高性能
以下是 WebRTC VAD(基于音高)、Silero VAD 和 TEN VAD 性能对比的精确召回曲线。评估是在精确人工标注的测试集上进行的,音频文件来自 librispeech、gigaspeech、DNS Challenge 等。如图所示,TEN VAD 表现最佳。此外,在大型内部真实世界数据集上进行的交叉验证实验证明了这些结果的可重复性。带有标注标签的测试集已在本仓库的 "testset" 目录中发布。

注意:默认使用 0.5 的阈值来生成二进制语音指示符(非语音信号为 0,语音信号为 1)。此阈值需要根据你的特定领域任务进行调整。在 Linux x64 上执行以下脚本可获得精确召回曲线,输出图形将保存在脚本所在的同一目录中。
cd ./examples
python plot_pr_curves.py
2. 对智能客服友好
如下图所示,TEN VAD 能够快速检测语音到非语音的转换,而 Silero VAD 会有几百毫秒的延迟,这会增加人机交互系统的端到端延迟。此外,在 6.5s - 7.0s 的音频片段中可以看到,Silero VAD 无法识别相邻语音片段之间的短静音时段。

3. 轻量级
我们在配备不同 CPU 的五个不同平台上评估了实时因子(RTF)。与 Silero VAD 相比,TEN VAD 具有更低的计算复杂度和更小的库大小。
平台 | CPU | RTF(TEN VAD) | RTF(Silero VAD) | 库大小(TEN VAD) | 库大小(Silero VAD) |
---|---|---|---|---|---|
Linux | AMD Ryzen 9 5900X 12 - Core | 0.0150 | / | 306KB | 2.16MB(JIT) / 2.22MB(ONNX) |
Linux | Intel(R) Xeon(R) Platinum 8253 | 0.0136 | / | 306KB | 2.16MB(JIT) / 2.22MB(ONNX) |
Linux | Intel(R) Xeon(R) Gold 6348 CPU @ 2.60GHz | 0.0086 | 0.0127 | 306KB | 2.16MB(JIT) / 2.22MB(ONNX) |
Windows | Intel i7 - 10710U | 0.0150 | / | 464KB(x86) / 508KB(x64) | 2.16MB(JIT) / 2.22MB(ONNX) |
macOS | M1 | 0.0160 | / | 731KB | 2.16MB(JIT) / 2.22MB(ONNX) |
Android | Galaxy J6 + (32bit, 425) | 0.0570 | / | 373KB(v7a) / 532KB(v8a) | 2.16MB(JIT) / 2.22MB(ONNX) |
Android | Oppo A3s (450) | 0.0490 | / | 373KB(v7a) / 532KB(v8a) | 2.16MB(JIT) / 2.22MB(ONNX) |
iOS | iPhone6 (A8) | 0.0210 | / | 320KB | 2.16MB(JIT) / 2.22MB(ONNX) |
iOS | iPhone8 (A11) | 0.0050 | / | 320KB | 2.16MB(JIT) / 2.22MB(ONNX) |
4. 支持多编程语言和平台
TEN VAD 提供跨五个操作系统(Linux x64、Windows、macOS、Android、iOS)的跨平台 C 兼容性,并针对 Linux x64 优化了 Python 绑定。
5. 支持的采样率和帧移大小
TEN VAD 以 16kHz 音频输入运行,帧移大小可配置(优化的帧配置:160/256 样本 = 10/16ms)。其他采样率必须重新采样到 16kHz。
📦 安装指南
git clone https://huggingface.co/TEN-framework/ten-vad
📚 详细文档
简介
TEN VAD 是一款专为企业设计的实时语音活动检测系统,可提供精确的帧级语音活动检测。与行业常用的 WebRTC VAD 和 Silero VAD 相比,它具有更高的精度。此外,与 Silero VAD 相比,TEN VAD 的计算复杂度更低,内存使用更少。同时,该架构的时间效率使其能够快速进行语音活动检测,显著降低了对话式 AI 系统中的端到端响应和轮次检测延迟。
📄 许可证
本项目采用 Apache 2.0 许可证。
📚 引用信息
@misc{TEN VAD,
author = {TEN Team},
title = {TEN VAD: A Low-Latency, Lightweight and High-Performance Streaming Voice Activity Detector (VAD)},
year = {2025},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {https://github.com/TEN-framework/ten-vad.git},
email = {developer@ten.ai}
}



