🚀 AST 微调用于虚假音频检测
本模型是 MIT/ast-finetuned-audioset-10-10-0.4593 的微调版本,带有二分类头部,用于检测虚假/合成音频。原始的 AST(音频频谱图变换器)分类头被替换为针对虚假音频检测优化的二分类层。
✨ 主要特性
- 模型类型:基于 AST 架构的二分类模型,用于虚假/真实音频检测。
- 输入:转换为梅尔频谱图的音频(128 个梅尔频带,1024 个时间帧)。
- 输出:概率 [虚假概率, 真实概率]。
- 训练硬件:2 块 NVIDIA T4 GPU。
📦 安装指南
文档未提供具体安装步骤,可根据 transformers
库的常规安装方法进行安装,例如使用 pip install transformers
。
💻 使用示例
基础用法
import torch
import torchaudio
import soundfile as sf
import numpy as np
from transformers import AutoFeatureExtractor, AutoModelForAudioClassification
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_name = "WpythonW/ast-fakeaudio-detector"
extractor = AutoFeatureExtractor.from_pretrained(model_name)
model = AutoModelForAudioClassification.from_pretrained(model_name).to(device)
model.eval()
audio_files = ["audio1.wav", "audio2.mp3", "audio3.ogg"]
processed_batch = []
for audio_path in audio_files:
audio_data, sr = sf.read(audio_path)
if len(audio_data.shape) > 1 and audio_data.shape[1] > 1:
audio_data = np.mean(audio_data, axis=1)
if sr != 16000:
waveform = torch.from_numpy(audio_data).float()
if len(waveform.shape) == 1:
waveform = waveform.unsqueeze(0)
resample = torchaudio.transforms.Resample(
orig_freq=sr,
new_freq=16000
)
waveform = resample(waveform)
audio_data = waveform.squeeze().numpy()
processed_batch.append(audio_data)
inputs = extractor(
processed_batch,
sampling_rate=16000,
padding=True,
return_tensors="pt"
)
inputs = {k: v.to(device) for k, v in inputs.items()}
with torch.no_grad():
logits = model(**inputs).logits
probabilities = torch.nn.functional.softmax(logits, dim=-1)
for filename, probs in zip(audio_files, probabilities):
fake_prob = float(probs[0].cpu())
real_prob = float(probs[1].cpu())
prediction = "FAKE" if fake_prob > real_prob else "REAL"
print(f"\nFile: {filename}")
print(f"Fake probability: {fake_prob:.2%}")
print(f"Real probability: {real_prob:.2%}")
print(f"Verdict: {prediction}")
📚 详细文档
模型信息
属性 |
详情 |
模型类型 |
基于 MIT/ast-finetuned-audioset-10-10-0.4593 的二分类模型 |
训练数据 |
WpythonW/real-fake-voices-dataset2、mozilla-foundation/common_voice_17_0 |
评估指标 |
准确率、F1 分数、召回率、精确率 |
推理参数 |
采样率 16000,单声道音频 |
模型性能
- 任务:音频分类(虚假/真实音频检测)
- 数据集:real-fake-voices-dataset2
- 评估指标结果:
- 准确率:0.9662
- F1 分数:0.971
- 精确率:0.9692
- 召回率:0.9728
🔧 技术细节
本模型是在预训练的 AST 模型基础上进行微调,将原始的分类头替换为二分类层,以适应虚假音频检测任务。训练过程使用了特定的音频数据集,并在 2 块 NVIDIA T4 GPU 上进行训练。
⚠️ 重要提示
- 本模型仅适用于 16kHz 音频输入。
- 对于训练数据中未出现的不同类型音频处理,模型性能可能会有所不同。
- 模型是在时长为 4 到 10 秒的音频样本上进行训练的。
📄 许可证
本模型使用 Apache-2.0 许可证。