🚀 Whisper 微調整発音スコアリングモデル
このモデルは、韓国語の発音品質を評価します。openai/whisper-small モデルをベースに、韓国 AI-Hub(https://www.aihub.or.kr/)の外国人韓国語発音評価データセットを使用して微調整されています。
🚀 クイックスタート
このモデルを使用するには、以下の手順に従ってください。
- 必要なライブラリをインストールする
- モデルとプロセッサをロードする
- オーディオファイルとテキストのトランスクリプトを準備する
- 発音スコアを予測する
以下は、モデルの使用方法の詳細な例です。
import torch
import torchaudio
from transformers import WhisperProcessor, WhisperForConditionalGeneration
import torch.nn as nn
class WhisperPronunciationScorer(nn.Module):
def __init__(self, pretrained_model):
super().__init__()
self.whisper = pretrained_model
self.score_head = nn.Linear(self.whisper.config.d_model, 1)
def forward(self, input_features, labels=None):
outputs = self.whisper(input_features, labels=labels, output_hidden_states=True)
last_hidden_state = outputs.decoder_hidden_states[-1]
scores = self.score_head(last_hidden_state.mean(dim=1)).squeeze()
return scores
def load_model(model_path, device):
model_name = "openai/whisper-small"
processor = WhisperProcessor.from_pretrained(model_name)
pretrained_model = WhisperForConditionalGeneration.from_pretrained(model_name)
model = WhisperPronunciationScorer(pretrained_model).to(device)
model.load_state_dict(torch.load(model_path, map_location=device))
model.eval()
return model, processor
def predict_pronunciation_score(model, processor, audio_path, transcript, device):
audio, sr = torchaudio.load(audio_path)
if sr != 16000:
audio = torchaudio.functional.resample(audio, sr, 16000)
input_features = processor(audio.squeeze().numpy(), sampling_rate=16000, return_tensors="pt").input_features.to(device)
labels = processor(text=transcript, return_tensors="pt").input_ids.to(device)
with torch.no_grad():
score = model(input_features, labels)
return score.item()
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_path = "path/to/your/model.pth"
model, processor = load_model(model_path, device)
audio_path = "path/to/your/audio.wav"
transcript = "안녕하세요"
score = predict_pronunciation_score(model, processor, audio_path, transcript, device)
print(f"Predicted pronunciation score: {score:.2f}")
✨ 主な機能
この発音スコアリングモデルは、オーディオ入力とそれに対応するテキストのトランスクリプトを受け取り、1 から 5 のスケールで韓国語の発音スコアを提供します。Whisper モデルのエンコーダ - デコーダアーキテクチャを利用して音声特徴を抽出し、追加の線形層を使用して発音スコアを予測します。
📚 ドキュメント
モデルの詳細
- モデルタイプ:音声分類
- 学習データ:韓国 AI-Hub(https://www.aihub.or.kr/)の外国人韓国語発音評価データセット
- 評価指標:1~5 のスコア
ウィジェットの例
- サンプル韓国語文:안녕하세요. 오늘 날씨가 좋습니다.
- 別のサンプル文:영어는 세계 공용어입니다.
📄 ライセンス
このモデルは、Apache-2.0 ライセンスの下で提供されています。