ポッドキャストを最近はじめました。
ウェブマーケターとしてはポッドキャストの集客のしづらさは問題に映ります。
これをカバーするために、字幕(トランスクリプト/文字書き起こし)作成の作業をプログラマーらしく自動化したいと考えることは、不自然なことではないでしょう。
Whisperで音声認識(Speech To Text)
ChatGPTでおなじみのOpenAIが作っているWhisperを使います。
録音された音声ファイルを指定して実行すると、以下のように出力されます。
$ whisper 240320.mp3 --language Japanese
[00:00.000 --> 00:08.000] すごいレス付いてるよね、これ。259レスって書いてあるよ。
[00:08.000 --> 00:15.000] あの、いや、これ。
[00:16.000 --> 00:26.000] 罰一かどうか、結婚して離婚しましたっていうものかどうかと、同じか同義かどうかっていうのは分かんないけど、
[00:26.000 --> 00:33.000] そこについて俺が同意するとか確かにそう思うよとかっていうのは、別に結婚したとか罰一かとかって、
[00:33.000 --> 00:43.000] それだってさ罰一だろうがなんだろうが、期間による、深さとか深度、期間によると思うし、10年ぐらいいました。
[00:44.000 --> 00:51.000] 10年ぐらいいましたなのか、少ないのか、短いのか、全然違うし。
[00:51.000 --> 00:59.000] 罰一かどうかっていうのは、俺は別に結婚っていう枠組みについては、なんかこだわりがないから、
[00:59.000 --> 01:12.000] 結婚罰一かどうかっていうのは、おいとくとしても、同性の経験が彼女の方、女の子の方にありましたっていう風になると
処理が完了するとファイルに出力されます。
見ると分かりますが、まあ完全ではありません。誤認識、誤植がある程度目立ちます。
例えばバツイチと発言しているところが"罰一"となっていたり、同棲と言っているところが"同性"になっていたりしていました。
これらは必要に応じて、手動で直す必要があります。VSCode等テキストエディタ上であれば、文字の置換や、同一文字列の選択を行うショートカットキーの利用等により素早く処理することができるかと思います。
実際にアンカー(Spotify for Podcasters)に投稿した際には"バツイチ"とかを修正しています ▼
(画像: 彼女に同棲経験があったら男性的には結構ヤバいと思う - 論理的恋愛分析科 • A podcast on Spotify for Podcasters)
環境構築
Githubページを見ればすぐ分かることですが、一応書いておきます。
Whisperは2年前頃から環境構築してありましたが、バージョンも変わってるだろうしということで再度入れ直しました。
僕の場合はpython 3.9.9でインストールしました。
$ PYENV_VERSION=3.9.9 python -m virtualenv venv
$ . venv/bin/activate
$ pip install -U openai-whisper==20231117
// or: pip install -U openai-whisper
// 任意。
$ echo $?
0
// 任意。
$ pip freeze > pip_freeze.txt
$ type whisper
whisper is hashed (/home/user/pg/whisper_2403_dev/venv/bin/whisper)
// e.g. whisper filename.mp3 --language Japanese
なお、Google ColaboratoryやHugging Faceでも使えるようです。お勧めはできませんが、気軽に試すには一つの方法としてよいと思います。
また、渡す音声データは無論、音がよいに越したことはありません。こういった場合のノイズ除去はFL StudioからEdisonプラグインのdenoiseで行うようにしています。
ポッドキャストのレコーディングはまだ慣れていなく手探りですが、徐々に上手くできるようになっていければいいなあと思っています。