前記事でWhisperというAI音声書き起こしツールを試し、これまで使用していたPremiere Proよりもかなり日本語文章として自然な結果が得られました。
その中でいくつか気になっていた、同じワードが反復して出てきてしまう現象について、VADという発話区間を識別する下処理をかけると良いのではという情報を発見しました。
標準では機械的に30秒ごとだかのセグメントを切って認識をしているところを、事前に声がある区間と無音区間または雑音の区間を切り分けて、発話のまとまりをしっかり識別してから処理にかけるという感じでしょうか。
VAD自体は一般的な処理の名称で、これまたAIで処理するSileroVADというツールが優秀っぽい。
そこで今回の記事ではSileroVADでの下処理→Whipserで書き起こしをまとめてやってくれるstable-tsというツールを試して見ることにしました。正式名称は「Stabilizing Timestamps for Whisper」みたいです。文章だけでなく単語レベルで正確なタイムスタンプを生成するのが主目的ぽいですが、その過程でSileroVADやWhisperも処理してくれます。
前回と同じくWindowsにPythonをセットアップし、pipでインストールしてコマンドラインから扱います。コマンドの構成はこんな感じ。
1 |
stable-ts (入力ファイル) -f srt --language ja --model=large-v3 --word_level=False --vad=True |
デフォルトで単語単位のタイムスタンプが有効なので、–word_level=Falseで無効にし、VAD処理をかけるため–vad=Trueを付加します。あとの言語やモデルの指定はバニラのWhisperと同じ感じ。
■結果比較
毎度の私のガジェットレビュー動画のサンプルです。
主にstable-tsとWhisperを見比べてみると、
- Whisperで気になった短い語句の繰り返しがほぼなくなっている
- 句点(。)がついている
- ブロックが自然なところで区切られている
といった違いが顕著です。基本的にstable-tsの方が勝っている印象です。
またGPUのVRAM使用量もWhisperが13GBくらいだったのに対し、stable-tsは9GBくらいとコンパクトになっており、処理時間はバニラWhisperが16分の音声ファイルを5分40秒だったのに対しstable-tsは2分28秒。VAD処理をしているにも関わらず速いです。ちゃんと調べてないですがfast-whisperという小型軽量高速なフォークを使っているのかも知れません。これくらいならRTX4090のようなモンスター級のGPUがないゲーミングノートPC程度でもそれなりに実用的な速度で使用できそうです。
各ツールの製作者、コントリビューターの方々には感謝感謝です。