目的
- 会議動画ファイルの中の情報を参照するのが地味に大変なので検索可能にしたい
前提
- Windows 11
- Intelオンボードグラフィック(割り当て16GB)
- 13th Gen Intel(R) Core(TM) i7-13700T 1.40 GHz
- RAM 32GB
- すべて無料のソフトを使用する
- 有料APIなども使わない
- というかすべてローカルで処理する
- chocolateyが入っている環境(べつになくてもいい)
必要なソフトウェアの用意
- 基本となるPython
- 音声変換のためのffmpeg
- AIによる文字起こしソフトウェアとしてWhisperのオープンソース版
この三つをインストールする。
Pythonとffmpegをインストール
- chocolateyを使用してインストールした
- Whisperを動かすためにはPythonのバージョンは3.8~3.11でなければならないらしい
PS> choco install -y python311 ffmpeg
pipアップデート
PS> python.exe -m pip install --upgrade pip
PyTorchインストール
PS> pip install torch torchvision torchaudio
ちなみにproxy環境下で証明書エラーが出るならこんなオプションをつける
--trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org
Whisperインストール
PS> pip install -U openai-whisper
使ってみる
コマンドラインオプション
設定したオプション
- --language ja: これがないと日本語音声ファイルが英語と誤認識されることがあった
- -o <output dir>, --output_dir <output dir>: ファイル出力ディレクトリ
実行
コマンドラインで動画または音声ファイルを指定して実行する。
ずらずらと文字起こし結果を画面に出しながら処理が進む。
PS> whisper --language ja -o "c:\Users\shimano\Videos" "2025-02-14 13-45-01.mkv"
[00:09.380 --> 00:10.600] セキュリティめちゃくちゃ
[00:10.600 --> 00:11.360] 厳しいんで
[00:11.360 --> 00:14.500] そこら辺の設定とか
[00:14.500 --> 00:15.500] もしないといけないんで
[00:15.500 --> 00:16.440] それでですね
[00:16.440 --> 00:17.320] うまくいかないと
[00:17.320 --> 00:18.660] 結構ハマったんです
[00:18.660 --> 00:20.220] ちょっと今
[00:20.220 --> 00:21.100] お見せしてる
[00:21.100 --> 00:22.520] このmarkdownとかも
[00:22.520 --> 00:24.100] ここら辺に
[00:24.100 --> 00:26.000] これちょっとステージング環境で
[00:26.000 --> 00:28.380] 認証情報とか
[00:28.380 --> 00:29.640] このファイル
[00:29.640 --> 00:30.800] このリンクを
[00:30.800 --> 00:32.660] たどっていただければ
[00:32.660 --> 00:36.000] わかる
[00:36.000 --> 00:37.160] で
[00:37.160 --> 00:38.700] 本番環境っていうのは
精度はどうなの?
全般的にはかなり使える部類かと。
- Googleドキュメントの音声入力よりもだいぶ精度が高いように思われる
- GitHubとかGitLabとかJavaとかわりと一般的な技術用語はちゃんと聞き取ってくれる
- よくある苗字も聞き取ってくれる
- あまり見かけない苗字、プロジェクト名などのマイナーな固有名詞は無理
出力ファイル
変換が終わるといろんなファイル形式で生成される。意外にもtxtファイルは普通に読める形式ではなかった。人間が読むならtsvが一番見やすいかな。
各出力ファイルはなんなの?
- srt/vttファイルはキャプションファイル。vttはsrtよりも多くの情報 (フォーマットオプション、メタデータ) を保存できる*