🚀 🎤 英語用Wav2Vec2音声感情認識
このモデルは、Wav2Vec2アーキテクチャを用いて英語の音声から感情を認識するために微調整されています。英語の音声に含まれる感情を高精度に検出することができます。
🚀 クイックスタート
このモデルは、英語の音声感情認識に特化しています。以下の手順で簡単に使用することができます。
✨ 主な機能
- 感情検出: 以下の感情を検出することができます。
- 😢 悲しみ
- 😠 怒り
- 🤢 嫌悪
- 😨 恐怖
- 😊 幸福
- 😐 中立
- 高精度: 精度が92.42%と高い性能を発揮します。
📦 インストール
pip install transformers torch torchaudio
💻 使用例
基本的な使用法
import torch
from transformers import Wav2Vec2ForSequenceClassification, Wav2Vec2FeatureExtractor
import torchaudio
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print("Using device:", device)
model_name = "dihuzz/wav2vec2-ser-english-finetuned"
model = Wav2Vec2ForSequenceClassification.from_pretrained(model_name).to(device)
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(model_name)
model.eval()
def predict_emotion(audio_path):
waveform, sample_rate = torchaudio.load(audio_path)
if sample_rate != 16000:
resampler = torchaudio.transforms.Resample(orig_freq=sample_rate, new_freq=16000)
waveform = resampler(waveform)
if waveform.shape[0] > 1:
waveform = torch.mean(waveform, dim=0, keepdim=True)
inputs = feature_extractor(
waveform.squeeze().numpy(),
sampling_rate=16000,
return_tensors="pt",
padding=True
)
inputs = {k: v.to(device) for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
predicted_class_id = torch.argmax(logits, dim=-1).item()
label = model.config.id2label[predicted_class_id]
return label
audio_file = "/path/to/your/audio.wav"
predicted_emotion = predict_emotion(audio_file)
print(f"Predicted Emotion: {predicted_emotion}")
📚 ドキュメント
🧠 モデルの概要
🔹 モデル名: dihuzz/wav2vec2-ser-english-finetuned
✨ このモデルは、Wav2Vec2アーキテクチャを用いて英語の音声から感情を認識するために微調整されています。
🔧 このモデルは、英語の感情付き音声サンプルを含むいくつかの著名な音声感情認識データセットでr-f/wav2vec-english-speech-emotion-recognition
を微調整することで作成されました。
📊 性能指標:
🏋️ 学習手順
⚙️ 学習詳細
- ベースモデル:
r-f/wav2vec-english-speech-emotion-recognition
- 💻 ハードウェア: Kaggle上のP100 GPU
- ⏱ 学習期間: 10エポック
- 📚 学習率: 5e-4
- 🧩 バッチサイズ: 4
- 📈 勾配累積ステップ: 8
- ⚖️ オプティマイザ: AdamW (β₁=0.9, β₂=0.999)
- 📉 損失関数: 交差エントロピー損失
- ⏳ 学習率スケジューラ: なし
📜 学習結果
エポック |
損失 |
精度 |
1 |
1.0257 |
61.20% |
2 |
0.7025 |
73.88% |
3 |
0.5901 |
78.25% |
4 |
0.4960 |
81.56% |
5 |
0.4105 |
85.04% |
6 |
0.3516 |
87.70% |
7 |
0.3140 |
88.87% |
8 |
0.2649 |
90.45% |
9 |
0.2178 |
92.42% |
10 |
0.2187 |
92.29% |
📝 出力例
モデルは予測された感情を表す文字列を返します。
Predicted Emotion: <emotion_label>
🔧 技術詳細
このモデルは、Wav2Vec2アーキテクチャをベースにしており、英語の音声感情認識に特化して微調整されています。学習には、英語の感情付き音声サンプルを含むデータセットを使用しています。
📄 ライセンス
READMEにライセンス情報が記載されていないため、このセクションは省略されています。
⚠️ 重要提示
このモデルにはいくつかの重要な制限があります。
- 🌐 言語の制限: 英語のみをサポートしています。
- 🗣️ 方言の影響: アクセントによって性能が異なる場合があります。
- 🎧 音質の要求: クリーンで明瞭な録音が必要です。
- ⚖️ 潜在的なバイアス: 学習データに含まれる文化的なバイアスを反映する可能性があります。
- 6️⃣ カテゴリの制限: 6つの基本的な感情のみを検出します。
- 🧠 文脈の考慮: 音声の内容の意味を考慮していません。