🚀 CoreML Silero VAD
CoreML Silero VAD是Silero语音活动检测(VAD)模型的CoreML实现,专为苹果平台(iOS/macOS)进行了优化。此仓库包含预转换的CoreML模型,可直接用于Swift应用程序。
📚 详细文档
模型描述
- 开发者:Silero团队(原模型),由FluidAudio转换
- 模型类型:语音活动检测
- 许可证:MIT
- 基础模型:silero-vad
模型详情
- 架构:STFT + 编码器 + RNN解码器管道
- 输入:16kHz单声道音频块(512个样本 / 32ms)
- 输出:语音活动概率(0.0 - 1.0)
- 内存:模型总大小约2MB
预期用途
主要用例
- 在iOS/macOS应用程序中进行实时语音活动检测
- 为自动语音识别(ASR)系统进行语音预处理
- 音频分割和过滤
📦 安装指南
将FluidAudio添加到你的Swift项目中:
dependencies: [
.package(url: "https://github.com/FluidAudio/FluidAudioSwift.git", from: "1.0.0")
]
💻 使用示例
基础用法
import FluidAudio
let config = VADConfig(
threshold: 0.3,
chunkSize: 512,
sampleRate: 16000
)
let vadManager = VADManager(config: config)
try await vadManager.initialize()
let result = try await vadManager.processChunk(audioChunk)
print("语音概率: \(result.probability)")
print("是否有语音活动: \(result.isVoiceActive)")
🔧 技术细节
性能
在苹果芯片(M1/M2)上的基准测试:
指标 |
值 |
延迟 |
每32ms音频块 <2ms |
实时因子 |
0.02x |
内存使用 |
~15MB |
CPU使用率 |
<5%(单核) |
准确率指标
在常见语音数据集上的评估结果:
- 精确率:94.2%
- 召回率:92.8%
- F1分数:93.5%
模型文件
此仓库包含三个协同工作的CoreML模型:
silero_stft.mlmodel
(650KB) - STFT特征提取
silero_encoder.mlmodel
(254KB) - 特征编码
silero_rnn_decoder.mlmodel
(527KB) - 基于RNN的分类
训练数据
原始的Silero VAD模型在多样化的数据集上进行训练,包括:
- 干净的语音音频
- 具有各种背景条件的嘈杂语音
- 音乐和非语音音频作为负样本
局限性和偏差
已知局限性
- 针对16kHz采样率进行了优化(其他采样率可能会降低准确率)
- 对于非常安静的语音(信噪比 <-30dB)可能效果不佳
- 性能会因麦克风质量和录音条件而异
模型架构
音频输入(512个样本,16kHz)
↓
STFT模型(频谱特征)
↓
编码器模型(特征压缩)
↓
RNN解码器(时间建模)
↓
语音概率输出
📄 许可证
本项目采用MIT许可证 - 详情请参阅LICENSE
文件。原始的Silero VAD模型也采用MIT许可证,详情请见此处。
📖 引用
@misc{silero-vad-coreml,
title={CoreML Silero VAD},
author={FluidAudio Team},
year={2024},
url={https://huggingface.co/alexwengg/coreml-silero-vad}
}
@misc{silero-vad,
title={Silero VAD},
author={Silero Team},
year={2021},
url={https://github.com/snakers4/silero-vad}
}
🔗 相关模型
查看其他CoreML音频模型:https://huggingface.co/collections/bweng/coreml-685b12fd251f80552c08e2b9
🛠️ 仓库与支持