Whisperの日本語文字起こしはどのサイズから実用になるか、tinyからlarge-v3-turboまで

打ち合わせの録音や、歌詞を口で吹き込んだボイスメモを文字にしたいとき、手元のPCで動くWhisperは便利な道具だ。音声を外部のサービスに送らずに済むので、未発表の曲の話をしている録音でも気にせず流し込める。ただ、使い始めるとすぐに迷うのがモデルの大きさだ。tinyからlargeまで6段階あり、さらにlarge-v3-turboという軽量版もある。動かす実装もOpenAI本家のほかにfaster-whisperとwhisper.cppがあって、組み合わせは思った以上に多い。 このメモでは、日本語で使う前提に絞って、モデルの大きさごとの文字誤り率、必要なメモリ、処理の速さを一つの表にまとめ直した。数字はOpenAIのリポジトリと、各実装・各モデルの配布元が公表している値だけを使っている。自分の録音で回す前に当たりをつけておけば、試す組み合わせを2つか3つに絞れる。最後に、自分の音声で確かめるときの手順も書き残しておく。 6つのサイズと、それぞれに必要なVRAM 音声をメルスペクトログラムに変え、エンコーダーで読み取ってからデコーダーが文字を1つずつ書き出すImage: Alec Radford, Jong Wook Kim, Tao Xu, Greg Brockman, Christine McLeavey, Ilya Sutskever / MIT Whisperは、音声を30秒ずつ区切ってメルスペクトログラムという画像のような形に変え、それをエンコーダーで読み取ってから、デコーダーが文字を1つずつ書き出していく仕組みになっている。モデルの大きさは、このエンコーダーとデコーダーの層の数と幅で決まる。OpenAIのリポジトリには、大きさごとのパラメータ数と、動かすのに必要なVRAMの目安、largeを1としたときの相対的な速さが載っている。 モデル パラメータ数 VRAMの目安 相対速度 英語専用版 tiny 3,900万 約1GB 約10倍 あり base 7,400万 約1GB 約7倍 あり small 2億4,400万 約2GB 約4倍 あり medium 7億6,900万 約5GB 約2倍 あり large(v3) 15億5,000万 約10GB 1倍 なし turbo(large-v3-turbo) 8億900万 約6GB 約8倍 なし 相対速度は英語の音声をA100というデータセンター向けのGPUで処理したときの値なので、家庭用のGPUや日本語の音声では比率が変わる。それでも、大きさが1段上がるごとに処理時間がおよそ倍になっていく感覚はつかめる。 日本語で使うときに最初に確認しておきたいのは、末尾に「.en」の付いた英語専用版を選ばないことだ。tiny.enやsmall.enは英語に特化して精度を上げた版で、日本語の音声を渡してもまともな結果にはならない。largeとturboにはそもそも英語専用版が無く、多言語版だけが配られている。 largeには世代があり、現行のlarge-v3は2023年11月に公開された。それ以前のlarge-v2と比べると、メルスペクトログラムの周波数の刻みが80から128に増え、学習に使った音声も大きく増えている。具体的には、ラベル付きの音声100万時間に加えて、large-v2で書き起こした音声400万時間を学習に使った。OpenAIが公開している公式のモデルとしては、2024年9月末のlarge-v3-turboがいまのところ最後で、それより新しい世代は出ていない。 日本語の文字誤り率は、smallとmediumのあいだで落ち着く 文字起こしの精度は、モデルの大きさと同じくらい、録音の条件にも左右されるPhoto: smaedli / CC BY 2.0 日本語の精度を見るときは、単語の誤り率(WER)ではなく文字の誤り率(CER)を使う。日本語は単語の区切りに空白を入れないので、単語単位で数えると区切り方の違いまで誤りとして数えられてしまい、数字が実感よりずっと悪く出るためだ。CERは、正解の文字数に対して、置き換え・抜け・余分な挿入がどれだけあったかの割合を表す。 日本語向けにWhisperを改良したkotoba-whisperの配布元が、OpenAIの各モデルを同じ条件で測った表を公開している。テストに使われているのは3種類の音声だ。CommonVoice 8は一般の人が文章を読み上げた録音、JSUTはスタジオで一人の話者が読み上げた音声、ReazonSpeechはテレビ放送から切り出した音声で、背景音や早口が混ざる、いちばん厳しい条件になる。 モデル CommonVoice 8 JSUT ReazonSpeech tiny 53.7% 36.5% 137.9% base 28.6% 24.9% 70.4% small 15.1% 14.2% 41.5% medium 11.5% 10.0% 33.2% large(初代) 10.0% 8.9% 34.1% large-v2 9.7% 8.2% 28.1% large-v3 8.5% 7.1% 14.9% 読み上げ音声の2つを見ると、tinyからsmallまでは1段上がるごとに誤り率がほぼ半分になり、smallからmediumで15%前後から10%前後まで下がる。その先のlarge系は、世代を重ねても1〜3ポイントずつしか縮まない。はっきりした読み上げ音声なら、mediumあたりで伸びが緩やかになると見てよさそうだ。 ...

2026年10月13日 · 1 分 · 184 文字 · kingsworksub-jpg