许可证: mit
数据集:
- fixie-ai/librispeech_asr
语言:
- en
基础模型:
- facebook/wav2vec2-base
管道标签: audio-classification
评估指标:
- accuracy
库名称: transformers
标签:
- voice_phishing
- audio_classification
语音检测AI - 真人语音与AI音频分类器

模型概述
该模型是基于Wav2Vec2微调的音频分类器,能够区分真人语音和AI生成语音。训练数据包含来自多种TTS模型的样本及真实人类录音。
模型详情
- 架构: Wav2Vec2ForSequenceClassification
- 微调数据集: 包含真实与AI生成音频的自定义数据集
- 分类类别:
- 真人语音
- AI生成语音(如Melgan、DiffWave等)
- 输入要求:
- 音频格式:
.wav
, .mp3
等
- 采样率: 16kHz
- 最大时长: 10秒(超长音频截断,过短音频填充)
性能表现
- 鲁棒性: 可准确分类多种AI生成模型
- 局限性: 对部分未见过的AI生成模型(如ElevenLabs)识别存在困难
使用方法
1. 安装依赖
确保已安装transformers
和torch
:
pip install transformers torch torchaudio
使用示例
使用VoiceGUARD进行音频分类的代码示例:
import torch
from transformers import Wav2Vec2ForSequenceClassification, Wav2Vec2Processor
import torchaudio
model_name = "Mrkomiljon/voiceGUARD"
model = Wav2Vec2ForSequenceClassification.from_pretrained(model_name)
processor = Wav2Vec2Processor.from_pretrained(model_name)
waveform, sample_rate = torchaudio.load("音频文件路径.wav")
if sample_rate != 16000:
resampler = torchaudio.transforms.Resample(orig_freq=sample_rate, new_freq=16000)
waveform = resampler(waveform)
inputs = processor(waveform.squeeze().numpy(), sampling_rate=16000, return_tensors="pt", padding=True)
with torch.no_grad():
logits = model(**inputs).logits
predicted_ids = torch.argmax(logits, dim=-1)
labels = ["真人语音", "AI生成语音"]
prediction = labels[predicted_ids.item()]
print(f"预测结果: {prediction}")
训练流程
- 数据收集: 构建平衡数据集,包含真人语音与多种TTS模型的AI生成样本
- 预处理: 统一音频格式,重采样至16kHz,调整时长为10秒
- 微调: 采用Wav2Vec2架构进行序列分类,以1e-5学习率训练3个周期
评估
- 指标: 准确率、精确率、召回率
- 结果: 测试集验证准确率达99.8%
局限性与未来工作
- 当前模型对已知AI生成模型表现良好,但对新型模型可能存在识别盲区
- 未来计划纳入新兴TTS技术样本以提升泛化能力
许可证
本项目采用MIT许可证,详见LICENSE文件
致谢