返回模型
说明文档
Whisper-base 语音活动检测 (VAD) 用于日语 ASMR - ONNX
模型描述
这是一个改进的基于 Whisper 的语音活动检测 (VAD) 模型,利用预训练的 Whisper encoder 配合轻量级非自回归 decoder 来实现高精度的语音活动检测。虽然该模型在日语 ASMR 内容上进行了微调以优化轻声细语和耳语的检测性能,但模型保留了 Whisper 强大的多语言基础,能够在多种语言和声学条件下有效检测语音。该模型已优化并导出为 ONNX 格式,以便在不同平台上高效推理。完整的训练代码、配置和 ONNX 导出工具,请参见 GitHub 仓库:TransWithAI/whisper-vad。
这项工作基于最近的研究,展示了 Whisper 的语音表示对 VAD 任务的正向迁移,如 WhisperSeg 及相关工作所示。
主要特性
- 架构:基于 whisper-base 的 Encoder-Decoder 模型
- 帧分辨率:每帧 20ms,实现精确的时间检测
- 输入时长:处理 30 秒音频块
- 输出:帧级别的语音/非语音预测
- 优化:ONNX 格式,支持跨平台部署
- 实时能力:快速非自回归推理
模型架构详情
- 基础模型:OpenAI whisper-base encoder(训练时冻结)
- Decoder:2 层 transformer decoder,8 个注意力头
- 处理流程:
- 输入:30 秒音频块(16kHz 采样率下 480,000 个采样点)
- 特征:80 通道 log-mel 频谱图
- 输出:1500 帧预测(每帧 20ms)
性能
- 帧时长:每帧 20ms,实现精确的时间检测
- 处理速度:CPU 上约 100 倍实时(单样本处理)
- 批处理:由于 ONNX 导出限制,目前仅支持批大小为 1,但单样本推理速度极快
- 专项训练:日语 ASMR 和耳语语音
- 泛化能力:尽管在日语 ASMR 上微调,模型继承了 Whisper 强大的多语言能力,可以有效检测多种语言和声学环境中的语音
相比原生 Whisper VAD 的优势
- 无幻觉:判别式模型不会生成虚假文本
- 更快:单次前向传播,非自回归推理
- 更高精度:20ms 帧级时间分辨率 vs Whisper 的 30 秒块
- 鲁棒性:Focal loss 训练有效处理语音/静音不平衡
- 轻量级:Decoder 在基础 Whisper encoder 上仅增加极少参数
使用方法
使用 ONNX Runtime 快速开始
import numpy as np
import onnxruntime as ort
from transformers import WhisperFeatureExtractor
import librosa
# Load model
session = ort.InferenceSession("model.onnx")
feature_extractor = WhisperFeatureExtractor.from_pretrained("openai/whisper-base")
# Load and preprocess audio
audio, sr = librosa.load("audio.wav", sr=16000)
audio_chunk = audio[:480000] # 30 seconds
# Extract features
inputs = feature_extractor(
audio_chunk,
sampling_rate=16000,
return_tensors="np"
)
# Run inference
outputs = session.run(None, {session.get_inputs()[0].name: inputs.input_features})
predictions = outputs[0] # Shape: [1, 1500] - 1500 frames of 20ms each
# Apply threshold
speech_frames = predictions[0] > 0.5
使用提供的推理脚本
模型仓库包含一个功能全面的 inference.py 脚本:
from inference import WhisperVADInference
# Initialize model
vad = WhisperVADInference(
model_path="model.onnx",
threshold=0.5, # Speech detection threshold
min_speech_duration=0.25, # Minimum speech segment duration
min_silence_duration=0.1 # Minimum silence between segments
)
# Process audio file
segments = vad.process_audio("audio.wav")
# Segments format: List of (start_time, end_time) tuples
for start, end in segments:
print(f"Speech detected: {start:.2f}s - {end:.2f}s")
流式/实时处理
# Process audio stream in chunks
vad = WhisperVADInference("model.onnx", streaming=True)
for audio_chunk in audio_stream:
speech_active = vad.process_chunk(audio_chunk)
if speech_active:
# Handle speech detection
pass
输入/输出规格
输入
- 音频格式:16kHz 单声道音频
- 块大小:30 秒(480,000 个采样点)
- 特征类型:80 通道 log-mel 频谱图
- 形状:
[1, 80, 3000](批大小固定为 1 - 见下方说明)
输出
- 类型:帧级概率
- 形状:
[1, 1500](批大小固定为 1) - 帧时长:每帧 20ms
- 范围:[0, 1] 语音存在概率
关于批处理的说明:目前,由于 PyTorch transformers 和 ONNX 之间的导出限制,ONNX 模型仅支持批大小为 1。但是,单样本推理经过高度优化,运行速度极快(CPU 上约 100 倍实时),对于大多数用例,顺序处理仍然非常高效。
训练详情
训练配置
- 数据集:约 500 小时日语 ASMR 音频录音,带有准确的语音时间戳
- 损失函数:Focal Loss (α=0.25, γ=2.0) 用于处理类别不平衡
- 优化器:AdamW,学习率 1.5e-3
- 批大小:128
- 训练时长:5 个 epoch
- 硬件:单 GPU 训练,使用混合精度 (bf16)
数据处理
- 音频分割为 30 秒的块
- 从词级时间戳生成帧级标签
- 数据增强:无(依赖 Whisper 预训练的鲁棒性)
限制与注意事项
- 固定时长:模型期望 30 秒的块;较短的音频需要填充
- 训练专精:虽然由于 Whisper 强大的多语言基础,模型在各种语言和环境下表现良好,但它在以下方面特别出色:
- 日语 ASMR 内容(主要训练数据)
- 耳语和轻声细语检测
- 安静、亲密的音频环境
- 泛化能力:模型可以有效处理多种语言和正常音量语音,尽管在类似于训练数据的内容上性能可能略好
- 背景噪声:在非常嘈杂的条件下性能可能下降
- 音乐/歌唱:主要在语音上训练;对歌唱的表现可能不稳定
模型文件
model.onnx:ONNX 模型文件model_metadata.json:模型配置和参数inference.py:即用型推理脚本,带后处理功能requirements.txt:Python 依赖
安装
pip install onnxruntime # or onnxruntime-gpu for GPU support
pip install librosa transformers numpy
应用场景
- ASMR 内容处理:检测 ASMR 录音中的耳语和细微发声
- 日语音频处理:针对日语内容优化,特别是轻声细语
- 转录预处理:在 ASR 之前过滤静音,对耳语内容特别有效
- 音频索引:识别长录音中的语音片段
- 实时通信:检测通话/会议中的活跃语音
- 音频分析:ASMR 和冥想内容的语音/静音比例分析
- 字幕对齐:为字幕提供准确的时间,包括耳语对话
引用
如果您使用此模型,请引用:
@misc{whisper-vad,
title={Whisper-VAD: Whisper-based Voice Activity Detection},
author={Grider},
year={2025},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/TransWithAI/Whisper-Vad-EncDec-ASMR-onnx}}
}
参考文献
- 原始 Whisper 论文:Robust Speech Recognition via Large-Scale Weak Supervision
- WhisperSeg:Positive Transfer of the Whisper Speech Transformer to Human and Animal Voice Activity Detection
许可证
MIT License
致谢
本模型基于 OpenAI 的 Whisper 模型构建,并实现了架构改进以实现高效的语音活动检测。
TransWithAI/Whisper-Vad-EncDec-ASMR-onnx
作者 TransWithAI
audio-classification
transformers
↓ 0
♥ 6
创建时间: 2025-11-06 19:19:22+00:00
更新时间: 2025-11-17 05:40:46+00:00
在 Hugging Face 上查看文件 (6)
.gitattributes
README.md
inference.py
model.onnx
ONNX
model_metadata.json
requirements.txt