🚀 Kotoba-Whisper-v2.1
Kotoba-Whisper-v2.1 は、kotoba-tech/kotoba-whisper-v2.0 をベースにした日本語の自動音声認識(ASR)モデルです。このモデルには、pipeline
として追加の後処理スタックが統合されています。新機能には、punctuators を使用した句読点の追加が含まれています。これらのライブラリは、パイプラインを介して Kotoba-Whisper-v2.1 に統合され、kotoba-tech/kotoba-whisper-v2.0 から予測された文字起こしにシームレスに適用されます。このパイプラインは、Asahi Ushio と Kotoba Technologies の共同開発によって作成されました。
🚀 クイックスタート
Kotoba-Whisper-v2.1 は、Hugging Face 🤗 Transformers ライブラリのバージョン 4.39 以降でサポートされています。モデルを実行するには、まず最新バージョンの Transformers をインストールします。
pip install --upgrade pip
pip install --upgrade transformers accelerate torchaudio
pip install stable-ts==2.16.0
pip install punctuators==0.0.5
✨ 主な機能
- 日本語の自動音声認識に特化したモデルです。
- 追加の後処理スタックが統合され、句読点の追加などの新機能を提供します。
- Hugging Face 🤗 Transformers ライブラリとの互換性があり、簡単に使用できます。
📦 インストール
上記のクイックスタートで示したコマンドを実行することで、必要なライブラリをインストールできます。
💻 使用例
基本的な使用法
モデルは、pipeline
クラスを使用して音声ファイルの文字起こしを行うことができます。
import torch
from transformers import pipeline
from datasets import load_dataset
model_id = "kotoba-tech/kotoba-whisper-v2.1"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model_kwargs = {"attn_implementation": "sdpa"} if torch.cuda.is_available() else {}
generate_kwargs = {"language": "ja", "task": "transcribe"}
pipe = pipeline(
model=model_id,
torch_dtype=torch_dtype,
device=device,
model_kwargs=model_kwargs,
batch_size=16,
trust_remote_code=True,
punctuator=True
)
dataset = load_dataset("japanese-asr/ja_asr.reazonspeech_test", split="test")
sample = dataset[0]["audio"]
result = pipe(sample, chunk_length_s=15, return_timestamps=True, generate_kwargs=generate_kwargs)
print(result)
高度な使用法
ローカル音声ファイルの文字起こし
ローカルの音声ファイルを文字起こしするには、パイプラインを呼び出す際に音声ファイルのパスを渡します。
- result = pipe(sample, return_timestamps=True, generate_kwargs=generate_kwargs)
+ result = pipe("audio.mp3", return_timestamps=True, generate_kwargs=generate_kwargs)
句読点の無効化
句読点を無効にするには、以下のように設定します。
- punctuator=True,
+ punctuator=False,
Flash Attention 2
GPU が対応している場合は、Flash-Attention 2 の使用をおすすめします。そのためには、まず Flash Attention をインストールする必要があります。
pip install flash-attn --no-build-isolation
その後、from_pretrained
に attn_implementation="flash_attention_2"
を渡します。
- model_kwargs = {"attn_implementation": "sdpa"} if torch.cuda.is_available() else {}
+ model_kwargs = {"attn_implementation": "flash_attention_2"} if torch.cuda.is_available() else {}
📚 ドキュメント
以下の表は、生の CER(通常の CER とは異なり、メトリクスを計算する前に句読点は削除されません。評価スクリプトは こちら を参照)を示しています。
正規化された CER に関しては、v2.1 の更新内容は正規化によって削除されるため、kotoba-tech/kotoba-whisper-v2.1 は kotoba-tech/kotoba-whisper-v2.0 と同じ CER 値を示します。
レイテンシ
レイテンシに関しては、kotoba-whisper-v1.1 の該当セクション こちら を参照してください。
📄 ライセンス
このプロジェクトは、Apache-2.0 ライセンスの下で公開されています。
🔧 技術詳細
Kotoba-Whisper-v2.1 は、kotoba-tech/kotoba-whisper-v2.0 をベースに開発されています。追加の後処理スタックが統合され、句読点の追加などの新機能を提供します。また、Hugging Face 🤗 Transformers ライブラリとの互換性があり、簡単に使用できます。
謝辞