1. ささやきの紹介
-
Whisper は一般的な音声認識モデルです。これは、さまざまな音声の大規模なデータセットでトレーニングされており、多言語音声認識、音声翻訳、言語認識を実行できるマルチタスク モデルでもあります。
-
Whisper には速度と精度のバランスを提供する 5 つのモデル サイズがあり、そのうち英語専用モデルには 4 つのオプションがあります。以下は、利用可能なモデルの名前、おおよそのメモリ要件、および相対速度です。
- github リンク: https://github.com/openai/whisper
2.方法
Transformer のシーケンスツーシーケンス モデルは、多言語音声認識、音声翻訳、話し言葉認識、音声アクティビティ検出などのさまざまな音声処理タスク向けにトレーニングされています。これらのタスクは、デコーダーによって予測される必要がある一連のシンボルの形式で表現されるため、単一のモデルで従来の音声処理パイプラインの複数のステージを置き換えることができます。マルチタスク トレーニング形式では、一連の特殊記号をタスク指定子または分類ターゲットとして使用します。
3. 環境構築
conda create -n whisper python=3.9
conda activate whisper
pip install -U openai-whisper
sudo apt update && sudo apt install ffmpeg
pip install setuptools-rust
4.Pythonテストスクリプト
- 軽量の tiny モデルを例として、テスト スクリプトは次のとおりです。
import whisper
model = whisper.load_model("tiny")
result = model.transcribe("sample_1.wav")
print(result["text"])
テスト結果は次のとおりです。
- 大型モデルをテストしたい場合は、16GB 以上のグラフィックス カードが必要です。
注: エンコーダーを 1 つの GPU にロードし、デコーダーを別の GPU にロードすることができるため、上記のテスト スクリプトは現時点ではマルチ GPU をサポートしていません。
マルチ GPU テストに合格したい場合は、次の方法を試してください。
- まず、最新のコミットが含まれるようにパッケージを更新します
pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git
- 次に、次のスクリプトを参照します。
import whisper
model = whisper.load_model("large", device="cpu")
model.encoder.to("cuda:0")
model.decoder.to("cuda:1")
model.decoder.register_forward_pre_hook(lambda _, inputs: tuple([inputs[0].to("cuda:1"), inputs[1].to("cuda:1")] + list(inputs[2:])))
model.decoder.register_forward_hook(lambda _, inputs, outputs: outputs.to("cuda:0"))
model.transcribe("jfk.flac")
マルチ GPU スクリプトのリファレンス リンク: https://github.com/openai/whisper/Discussions/360
- 大規模モデル (ビデオ メモリ >=16GB)、入力オーディオ、出力テキスト (簡体字中国語) をテストします。initial_prompt を設定する必要があります。それ以外の場合、出力は繁体字中国語になる可能性があります。
import whisper
import os
model = whisper.load_model("large")
prompt='以下是普通话的句子'
result = model.transcribe(file_path, language='zh',verbose=True, initial_prompt=prompt)
print(result["text"])