🚀 語音檢測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文件。
致謝