🚀 音声検出AI - 実音声とAI音声の分類器
このモデルは、実際の人間の声とAI生成の声を区別できる、Wav2Vec2ベースの音声分類器です。様々なTTSモデルのサンプルと実際の人間の音声録音を含むデータセットで学習されています。

🚀 クイックスタート
モデル概要
このモデルは、Wav2Vec2をベースに微調整された音声分類器で、実際の人間の声とAI生成の声を区別することができます。様々なTTSモデルのサンプルと実際の人間の音声録音を含むデータセットで学習されています。
モデル詳細
属性 |
详情 |
モデルタイプ |
Wav2Vec2ForSequenceClassification |
訓練データ |
実際の音声とAI生成音声を含むカスタムデータセット |
クラス |
1. 実際の人間の声 2. AI生成(例:Melgan、DiffWaveなど) |
入力要件 |
音声フォーマット: .wav , .mp3 など サンプルレート: 16kHz 最大長: 10秒(長い音声は切り捨て、短い音声はパディング) |
性能
- ロバスト性: 複数のAI生成モデルにわたって成功的に分類します。
- 制限事項: 特定の未知のAI生成モデル(例:ElevenLabs)では苦労することがあります。
使い方
1. 依存関係のインストール
transformers
と torch
がインストールされていることを確認してください。
pip install transformers torch torchaudio
2. 音声分類の使用方法
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}")
学習手順
- データ収集: 実際の人間の声と様々なTTSモデルのAI生成サンプルを含むバランスの取れたデータセットを作成しました。
- 前処理: 音声フォーマットを標準化し、16kHzにリサンプリングし、長さを10秒に調整しました。
- 微調整: シーケンス分類用のWav2Vec2アーキテクチャを使用し、学習率1e-5で3エポック学習しました。
評価
- 評価指標: 正解率、適合率、再現率
- 結果: テストセットで99.8%の検証正解率を達成しました。
制限事項と今後の展望
- VoiceGUARDは既知のAI生成モデルでは堅牢に動作しますが、新しいまたは未知のモデルでは問題が発生する可能性があります。
- 今後の作業として、新興のTTS技術のサンプルを含む学習データセットを拡張し、汎化性能を向上させる予定です。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。
謝辞
- Wav2Vec2 モデルの開発者と、このプロジェクトで使用されるデータセットの貢献者に特別な感謝を申し上げます。
- 完全なプロジェクトは GitHub で確認できます。