7.3.2.1
動画からの音声認識
まとめ
- OpenAIのWhisperで決算動画の音声を自動文字起こしし、分析用テキストを取得する。
- HuggingFaceのFuguMTモデルで英語テキストを日本語に翻訳するパイプラインを構築する。
- モデルサイズの選択や前処理の工夫で、文字起こし精度を改善する方法を学ぶ。
直感 #
海外企業の決算発表動画やアナリスト向けウェブキャストは貴重な情報源ですが、音声のままでは定量分析に使えません。OpenAIが公開しているWhisperは、68万時間以上の多言語データで学習された自動音声認識(ASR)モデルで、英語の決算動画を高精度にテキスト化できます。文字起こし結果をさらに翻訳モデルに通すことで、日本語での分析も可能になります。
詳細な解説 #
環境構築 #
Anacondaを使用している場合は、以下のコマンドで専用環境を作成します。
| |
Whisperによる音声認識 #
音声データは『Flex LNG Q3 2022 Key Takeaways』の音声を使用しています。
Whisperのモデルサイズはtiny・base・small・medium・largeの5段階があり、大きいほど精度が高くなりますが処理時間も増えます。決算動画のような明瞭な音声であればbaseで十分な精度が得られます。
| |
| |
モデルサイズによる精度の違い #
モデルサイズを上げると固有名詞や専門用語の認識精度が向上します。
| モデル | パラメーター数 | 英語WER | 処理速度 | 推奨用途 |
|---|---|---|---|---|
| tiny | 39M | 高 | 最速 | プロトタイプ・短時間テスト |
| base | 74M | 中 | 速い | 明瞭な音声・決算動画 |
| small | 244M | 低 | 普通 | ノイズのある音声 |
| medium | 769M | 低 | 遅い | 高精度が必要な場合 |
| large | 1550M | 最低 | 最遅 | 最高精度・GPU推奨 |
タイムスタンプ付き文字起こし #
result["segments"]にはタイムスタンプ付きのセグメント情報が含まれており、どの時間帯でどの発言があったかを把握できます。
| |
FuguMTによる日本語翻訳 #
文字起こし結果を日本語に翻訳します。文単位に分割してからモデルに入力することで、翻訳品質が向上します。
| |
| |
翻訳の正しさは保証されておらず、また本コードも動作や出力に関しては一切の責任を負えません。
分析のヒント #
- 文字起こし結果に含まれる誤認識(例: “TURD”→“Third”, “Ernings”→“Earnings”)は、正規表現による後処理で修正できます。金融用語の置換辞書を用意しておくと効率的です。
- 文字起こしテキストを感情分析パイプラインに接続すると、決算発表のトーン分析が自動化できます。
- 長時間の動画は
whisperの--language enオプションで言語を明示すると、認識精度が安定します。 - GPU環境がない場合は
tinyやbaseモデルを使い、処理時間を短縮します。
- 英語から日本語字幕データを作成 — 文字起こし結果をSRT字幕ファイルに変換
- テキストの感情分析 — 文字起こしテキストのセンチメント分析