Amatsukazeでは、Whisperを使用した音声からの字幕生成が可能です。
字幕モードで「Whisperで生成」を選択することで、音声から文字起こしによりSRT字幕を生成することができます。
Amatsukazeでは、faster-whisperをベースとするwhisper-standalone-winとwhisper.cppに対応しています。
導入の容易さと精度の観点で、whisper-standalone-winを推奨しますが、whisper-standalone-winはNVIDIA GPUとCPUのみに対応しています。
CPUでの字幕生成は時間を要するため、NVIDIA GPUのない環境で、Intel/AMD GPUやIntel NPUを使用したい場合には、whisper.cppを試してみてください(ただし、導入難易度は高めです)。
whisper-standalone-winからFaster-Whisper-XXLをダウンロードし、適当な場所に展開します。
[基本設定]タブで展開した場所にあるfaster-whisper-xxlのパスを指定してください。
その後、プロファイルの[字幕モード]でWhisperで字幕を生成するよう指定してください。
faster-whisperの場合、whisper-optionは特に指定しなくてもまずは問題なく動作します。
なお、初回実行時にはモデルのダウンロードが行われるため、時間がかかります。
whisper.cppを使用する場合は、実行ファイルのビルド・モデルの準備等を自分で行う必要があります。
Intel GPU/NPUを使用する場合と、AMD GPUを使用する場合で、ビルド方法が異なります。
前提 下記は導入済みとします。
- Visual Studio 2022 (Windows) / gcc,g++ (Linux)
- cmake
whisper.cppのOpenVINO実装を使用します。
OpenVINOをダウンロードして、適当な場所に展開します。
また、Intel TBBが必要になるため、OneAPIをダウンロードしてインストールします。
Windowsでは、"Intel oneAPI command prompt for Intel 64 for Visual Studio 2022" を開きます。
-DAVX512_FOUNDは使用する環境に合わせて指定してください。AVX512有効でビルドをしてしまうとAVX512非対応の環境で異常終了してしまうためです。
<OpenVINOの展開先>\setupvars.bat
# whisper.cppをOpenVINO有効でビルド
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
cmake -B build -DCMAKE_CXX_FLAGS_RELEASE="/MT /Ox /Ob2 /DNDEBUG" -DWHISPER_OPENVINO=1 -DAVX512_FOUND=[ON,OFF]
cmake --build build -j --config Releasebuild\bin\Releaseに実行ファイルが生成されます。
このディレクトリに下記dllをコピーします。
-
OpenVINO関連のdll
<OpenVINOの展開先>\runtime\bin\intel64\Release\openvino*.dllすべて -
TBB関連のdll
C:\Program Files (x86)\Intel\oneAPI\tbb\latest\bin\tbb*.dllすべて
whisper.cppのVulkan実装を使用します。
Vulkan SDKをインストールします。インストールするコンポーネントはデフォルトで構いません。
Windowsでは、"x64 Native Tools Command Prompt for VS 2022"を開き、下記のようにビルドします。
-DAVX512_FOUNDは使用する環境に合わせて指定してください。AVX512有効でビルドをしてしまうとAVX512非対応の環境で異常終了してしまうためです。
# whisper.cppをVulkan有効でビルド
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
cmake -B build -DCMAKE_CXX_FLAGS_RELEASE="/MT /Ox /Ob2 /DNDEBUG" -DGGML_VULKAN=1 -DAVX512_FOUND=[ON,OFF]
cmake --build build -j --config Releasebuild\bin\Releaseに実行ファイルが生成されます。
事前にモデルのダウンロードを行います。下記では、large-v3-turboの例を示しますが、利用するモデルに応じて適宜読み替えてください。
cd models
download-ggml-model.cmd large-v3-turboggml-large-v3-turbo.bin がダウンロードされます。
Intel GPU / Intel NPUを使用する場合は、さらに追加で下記操作が必要です。
cd models
python -m venv openvino_conv_env
openvino_conv_env\Scripts\activate
python -m pip install --upgrade pip
pip install -r requirements-openvino.txt
pip install onnxscript
python convert-whisper-to-openvino.py --model large-v3-turboggml-large-v3-turbo-encoder-openvino.[bin/xml]が生成されます。
[基本設定]タブでビルドしたwhisper-cliのパスを指定してください。
また、プロファイル設定では、[字幕モード]でWhisperで字幕を生成するよう指定してください。
[whisper-model]は未指定を選択してください。(この設定欄はfaster-whisper用です)
[whisper-option]は、whisper.cppの場合、下記をベースに調整してみてください。
-m <使用するモデルへのパス> --language ja --split-on-word --entropy-thold 2.8 --max-context 8
-
-m <使用するモデルへのパス>
使用するモデルへのパスは、例えば
ggml-large-v3-turbo.binへのフルパスとしてください。 -
--language ja
whisper.cppはデフォルトが英語なので、指定が必要です。自動判定したいときは、
--language autoとします。 -
--split-on-word --entropy-thold 2.8 --max-context 8
whisper.cppはfaster-whisperと異なり、音楽等認識が安定しないときに繰り返し同じ文字列を返す傾向があり、それを抑制するオプションです。
また、OpenVINOビルドでは、下記指定が追加で必要です。
-
Intel GPUを使用する場合
--ov-e-device GPU -
Intel NPUを使用する場合
--ov-e-device NPU

