| @WWW

OpenAI の文字起こし AI Whisper を簡単に利用できる whisper.cpp を使って英語の Podcast を文字起こししている。めっちゃ便利。

英語の Podcast 、特に会話主体の Podcast はリスニングがかなり難しかった。ニュースの Podcast などは比較的聞き取れるのだけど、テック系の Podcast などは特に意味がわからない。語彙の問題かと思ってたが、文字起こしをしてみて初めて理由がわかった。フィラー(意味のない場繋ぎのための言葉)が原因だった。文字起こしされたものでも読みにくいのだ。

フィラーとは一般的には "Uh" とか "Um" 、 "Well" みたいなやつだが、人によってだいぶフィラーには違いがある。いま聞いてる Podcast の話者たちは "I mean" とか "as well" 、 "like" や "that" を多用するが、このようなフィラーっぽくない単語を口癖なのか場繋ぎ的に使う。なのでそのまま文字に起こして読んでも意味が通らない文章になっていたのだ。

音のまま会話文を理解するためには「あ、いまのはフィラーだからスキップしてよいな」というのが瞬時に判断できなければならない。フィラーに加えて言い間違いの訂正もある。ニュースのアナウンサーは基本的にフィラーなしで喋るし、言い間違いして訂正することもほとんどない。英検のリスニング問題もそうだ。

しかし生身の人間は、日本語でもそうだけど、話していて考えている最中に「えー(Uh)」とか「あー(Um)」とか言ってしまう。ネイティブの日本語話者である自分は「えー」や「あー」、言い間違いや言い直しは瞬時に頭の中で意味がないものと判定できているが、英語ではそれができないので会話文の理解が難しいのだ。なので英語の会話文を理解するためには、まず①文章として筋の通った英語をわかる必要があり、その上で②フィラーや言い直しなどを瞬時に判定できるようになって音を聞きながらそれらを除外して頭の中で文章を組み立てていく力が必要になるということだ。

whisper.cpp では文字起こしする際に利用するモデルを選べる。名前が小さいモデルほどダンウロードするファイルが小さく、文字起こしの処理も速くなるようだ。英語ならば small でも充分な精度だが、 small は音に忠実に文字起こししようとしてフィラーがたくさん入ってしまう。 medium あたりからフィラーが除去されるようになり、 large だと結構アグレッシブにフィラーや言い間違いを除去してくれて読みやすい英語になる。

Whisper は ChatGPT と同じで、人間っぽいことをやろうとしている。音声からの文字起こし自体なら YouTube にもあるし、音声認識は iPhone や Android 携帯にも付いている。ただ、これらは聞いた内容をそのまま文字にするだけなのでフィラーや言い間違いを除外しない。なので出てきた最終系は意味の通らない文章になってしまう。 Whisper の large モデルあたりは人間が会議の議事録を取るのと近い感じで、言い間違いやフィラーを取り除いてきちんと文意が通るかたちで文字起こししてくれる。さらにそれを ChatGPT に投げて要約させたら議事録係とかいらなくなってしまう。すごい。

whisper.cpp を使う上での注意点としては Apple Silicon の Mac でこそ真価を発揮するので Intel Mac ではかなり遅いということだ。 iMac 5K 2017 で 40 分のエピソードを文字起こししたら 1 時間半くらいかかったのが、 M2 Pro の Mac mini では 20 分もかからずに終わってしまった。 whisper.cpp を使うために Mac を買い換えても元が取れるくらいに便利なので是非 Apple Silicon の Mac を買って whisper.cpp 使ってみてほしい。