🚀 Wav2Vec2-Large-Ru-Golos-With-LM
Wav2Vec2モデルは、facebook/wav2vec2-large-xlsr-53をベースに、Sberdevices Golosを用いてロシア語でファインチューニングされています。音声のピッチシフト、加速/減速、残響などのオーディオオーグメンテーションも適用されています。
2-gram言語モデルは、3つのオープンソースから得られたロシア語のテキストコーパスに基づいて構築されています。
🚀 クイックスタート
このモデルを使用する際には、音声入力が16kHzでサンプリングされていることを確認してください。
✨ 主な機能
📦 インストール
このセクションでは、必要なライブラリのインストールについて説明します。以下のコマンドを使用して、必要なライブラリをインストールしてください。
pip install librosa nltk datasets transformers torch numpy
💻 使用例
基本的な使用法
import os
import warnings
import librosa
import nltk
import numpy as np
import torch
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2ProcessorWithLM
MODEL_ID = "bond005/wav2vec2-large-ru-golos-with-lm"
DATASET_ID = "bond005/sberdevices_golos_10h_crowd"
SAMPLES = 30
nltk.download('punkt')
num_processes = max(1, os.cpu_count())
test_dataset = load_dataset(DATASET_ID, split=f"test[:{SAMPLES}]")
processor = Wav2Vec2ProcessorWithLM.from_pretrained(MODEL_ID)
model = Wav2Vec2ForCTC.from_pretrained(MODEL_ID)
def speech_file_to_array_fn(batch):
speech_array = batch["audio"]["array"]
batch["speech"] = np.asarray(speech_array, dtype=np.float32)
return batch
removed_columns = set(test_dataset.column_names)
removed_columns -= {'transcription', 'speech'}
removed_columns = sorted(list(removed_columns))
with warnings.catch_warnings():
warnings.simplefilter("ignore")
test_dataset = test_dataset.map(
speech_file_to_array_fn,
num_proc=num_processes,
remove_columns=removed_columns
)
inputs = processor(test_dataset["speech"], sampling_rate=16_000,
return_tensors="pt", padding=True)
with torch.no_grad():
logits = model(inputs.input_values,
attention_mask=inputs.attention_mask).logits
predicted_sentences = processor.batch_decode(
logits=logits.numpy(),
num_processes=num_processes
).text
with warnings.catch_warnings():
warnings.simplefilter("ignore")
for i, predicted_sentence in enumerate(predicted_sentences):
print("-" * 100)
print("Reference:", test_dataset[i]["transcription"])
print("Prediction:", predicted_sentence)
高度な使用法
このモデルの高度な使用法については、Google Colabのスクリプトを参照してください。このスクリプトのGoogle Colabバージョンも利用可能です。
📚 ドキュメント
このモデルは、SberDevices Golos、Common Voice 6.0(ロシア語部分)、およびRussian Librispeechのテストサブセットで評価されました。ただし、トレーニングはSberDevices Golosのトレーニングサブセットのみで行われました。Russian LibrispeechやSOVA RuDevicesなどの他のデータセットでの評価スクリプトは、私のKaggleのウェブページhttps://www.kaggle.com/code/bond005/wav2vec2-ru-lm-eval で確認できます。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。
🔖 引用
このモデルを引用する場合は、以下のようにしてください。
@misc{bondarenko2022wav2vec2-large-ru-golos,
title={XLSR Wav2Vec2 Russian with 2-gram Language Model by Ivan Bondarenko},
author={Bondarenko, Ivan},
publisher={Hugging Face},
journal={Hugging Face Hub},
howpublished={\url{https://huggingface.co/bond005/wav2vec2-large-ru-golos-with-lm}},
year={2022}
}
📊 モデル情報
属性 |
详情 |
モデルタイプ |
Wav2Vec2-Large-Ru-Golos-With-LM |
トレーニングデータ |
SberDevices/Golos、common_voice、bond005/rulibrispeech、bond005/sova_rudevices、dangrebenkin/voxforge-ru-dataset |
評価指標 |
wer、cer |
タグ |
audio、automatic-speech-recognition、speech、common_voice、SberDevices/Golos、bond005/rulibrispeech、bond005/sova_rudevices、dangrebenkin/voxforge-ru-dataset |
ライセンス |
apache-2.0 |