🚀 语音检测AI - 真实与AI音频分类器
本项目是一个基于Wav2Vec2微调的音频分类器,能够精准区分真实人类语音和AI生成语音。它在包含各种TTS模型样本和真实人类音频记录的数据集上进行了训练。

🚀 快速开始
安装依赖
确保你已经安装了 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("path_to_audio_file.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 = ["Real Human Voice", "AI-generated"]
prediction = labels[predicted_ids.item()]
print(f"Prediction: {prediction}")
✨ 主要特性
- 能够区分真实人类语音和AI生成语音。
- 在多种AI生成模型上具有较好的分类效果。
📦 安装指南
确保你已经安装了 transformers
和 torch
:
pip install transformers torch torchaudio
💻 使用示例
基础用法
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("path_to_audio_file.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 = ["Real Human Voice", "AI-generated"]
prediction = labels[predicted_ids.item()]
print(f"Prediction: {prediction}")
📚 详细文档
模型概述
此模型是一个基于Wav2Vec2微调的音频分类器,能够区分真实人类语音和AI生成语音。它在包含各种TTS模型样本和真实人类音频记录的数据集上进行了训练。
模型详情
属性 |
详情 |
模型类型 |
Wav2Vec2ForSequenceClassification |
微调数据集 |
包含真实和AI生成音频的自定义数据集 |
分类类别 |
1. 真实人类语音 2. AI生成(如Melgan、DiffWave等) |
输入要求 |
- 音频格式:.wav 、.mp3 等 - 采样率:16kHz - 最大时长:10秒(较长音频会被截断,较短音频会被填充) |
性能
- 鲁棒性:能够在多个AI生成模型上成功分类。
- 局限性:在某些未见的AI生成模型(如ElevenLabs)上表现不佳。
训练过程
- 数据收集:编译了一个包含真实人类语音和各种TTS模型AI生成样本的平衡数据集。
- 预处理:标准化音频格式,重采样到16 kHz,并将时长调整为10秒。
- 微调:使用Wav2Vec2架构进行序列分类,以1e-5的学习率训练3个周期。
评估
- 评估指标:准确率、精确率、召回率
- 评估结果:在测试集上实现了99.8%的验证准确率。
局限性和未来工作
- 虽然VoiceGUARD在已知的AI生成模型上表现稳健,但在新的或未见的模型上可能会遇到挑战。
- 未来工作包括用新兴TTS技术的样本扩展训练数据集,以提高泛化能力。
📄 许可证
本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。
致谢