音声の文字起こしと字幕の作り方
会議や講義、インタビューを手で文字起こしすると、録音の何倍もの時間がかかります。音声認識モデルがその大部分を引き受けてくれますが、結果の確認は欠かせません。モデルが録音を読むしくみ、モデルの選び方、誤りを減らす方法、文字起こしを字幕ファイルにする方法を説明します。
音声認識が録音を読むしくみ
音声の文字起こしツールは、OpenAI が 2022 年に MIT ライセンスで公開した音声認識モデル Whisper を使います。モデルカードによると、Whisper はインターネットから集めた 68 万時間分の音声とその書き起こしで学習しており、その約 3 分の 2 が英語です。
Whisper はファイル全体を一度に聞くわけではありません。音声を 30 秒ずつスペクトログラム(どの高さの音が強いかを時間ごとに表した図)に変えて読み、その区間で最もありそうな文章を、単語の断片ごとに時刻情報とあわせて書いていきます。そのため長い録音は複数の区間に分かれます。このツールは文が途中で切れないよう、区間の終わり近くで最も長い間(ま)を選んで区切り、無音の区間は飛ばします。
モデルは文字を書く前に、何語かを判定することもできます。最初に予測するのが言語の印だからです。言語を「自動検出」のままにすると、ツールは話し声が始まってから最初の 30 秒でこの判定を行い、ファイル全体をその一つの言語で文字起こしします。
どのモデルを使うか
Whisper にはいくつかの大きさがあります。このツールでは 3 つを選べます。base と small は最近のブラウザならどこでもプロセッサーで動き、large-v3-turbo はブラウザが WebGPU に対応していればグラフィックス処理装置で動きます。
| モデル | パラメーター数 | 初回ダウンロード | 話し声 1 分の処理時間* | 向いている用途 |
|---|---|---|---|---|
| Whisper base | 7,400 万 | 約 90 MB | 約 30 秒 | はっきりした録音、スマートフォン |
| Whisper small | 2 億 4,400 万 | 約 250 MB | 約 1 分 35 秒 | WebGPU がないときの日本語など英語以外の言語 |
| Whisper large-v3-turbo | 8 億 900 万 | 約 750 MB | 約 20 秒 | WebGPU が使えるパソコン:最も正確 |
* デスクトップパソコン 1 台のブラウザで測った値です。base と small は 8 ビット版をプロセッサーで、large-v3-turbo は 4 ビット版をグラフィックスカードで動かしました。遅い端末ではさらに時間がかかります。モデルのダウンロードは一度だけで、その後はツールで削除するまでブラウザに保存されます。
品質の差は英語以外の言語で最も大きくなります。音声合成で読み上げた 1 分の韓国語の録音で試したところ、base は「회의」(会議)を「후회」(後悔)、「월요일」(月曜日)を「머료일」と書き、small はその 2 つを正しく書いたものの「문의」(問い合わせ)を「무늬」(模様)と書き、large-v3-turbo は誤りがありませんでした。ブラウザに large-v3-turbo が表示されていればそれを使い、そうでなければ base で試して、誤りが多ければ small に切り替えてください。
large-v3-turbo は、Whisper で最も大きいモデル large-v3 を速く動くように最適化した版です。グラフィックス処理装置が必要で、プロセッサーだけでは録音の約 13 倍の時間がかかったため、ツールは WebGPU があるときだけこのモデルを表示します。たとえばパソコンの最新の Chrome と Edge、最近の Mac の Safari です。base よりはるかに多くのメモリを使うため、スマートフォンでは動かないことがあります。
より正確に文字起こしするには
- マイクの近くで録音する。距離、反響、背景の雑音が精度を最も大きく下げます。
- 音楽や重なる声を避ける。Whisper は文章を一続きで書き、話者を区別しません。
- 言語を自分で選ぶ。録音が音楽や無音、別の言語のあいさつで始まるときは特に必要です。
- 人名や用語は直す前提で。モデルは音から表記を推測し、よく使われる語を選びがちです。
- 作り出された文章に注意する。モデルカードは、Whisper が話されていない内容を書いたり同じ言葉を繰り返したりすることがあると警告しています。主に無音や騒がしい部分で起きるので、そこは録音と照らし合わせて読んでください。
- とても長いファイルは分割する。1 時間の音声はデコード後に約 220 MB のメモリを使い、処理はすべてお使いの端末で行われます。
字幕ファイル:SRT と VTT
字幕ファイルはただのテキストファイルです。開始時刻、終了時刻、表示する文字からなる字幕(キュー)が順に並んでいます。よく使われる 2 つの形式は、見た目がほとんど同じです。
SubRip(.srt)は字幕ごとに番号を付け、ミリ秒の前にコンマを書きます。
1
00:00:00,000 --> 00:00:02,800
本日の会議の要点をまとめます。
2
00:00:02,800 --> 00:00:06,400
来月の発売日は予定どおりです。
WebVTT(.vtt)はウェブページの字幕のための W3C の形式で、HTML の <track> 要素が使います。ファイルは WEBVTT という文字で始まり、時刻にはピリオドを使い、番号は付けなくてもかまいません。
WEBVTT
00:00:00.000 --> 00:00:02.800
本日の会議の要点をまとめます。
00:00:02.800 --> 00:00:06.400
来月の発売日は予定どおりです。
WebVTT の字幕の文字には --> を含められず、& と < は &、< と書く必要があります。このツールは自動で置き換えます。SRT には公式の仕様がありませんが、動画編集ソフトやプレーヤーは上のような形を読み込みます。お使いのプレーヤーやサービスが求める形式を選んでください。
読みやすい字幕に整える
Whisper の区間はモデルが判断した文の区切りに従うため、長いものもあります。字幕を公開する前に動画と一緒に再生し、表示時間が長すぎる区間や 2 行を超える区間は分け、話し声と字幕のタイミングが合っているか確かめてください。多くの字幕編集ソフトは SRT ファイルを開いて字幕をずらしたり分けたりできます。
端末内の文字起こしとクラウドの文字起こし
オンラインの文字起こしサービスは、ふつう録音を自社のサーバーにアップロードし、大きなモデルで素早く処理します。ブラウザのツールは録音を端末に置いたままにします。音声はページの中でデコード・文字起こしされ、ダウンロードするのはモデルのファイルだけです。その代わり、速度はお使いのプロセッサー次第で、モデルの大きさはブラウザが扱える範囲に限られます。
だれが処理するにしても、他人の録音は慎重に扱う必要があります。Whisper のモデルカードは、本人の同意なしに録音した人の発言を文字起こしすることに使わないよう求めています。会話を録音したり文字起こししたりする前に、相手に確認してください。
よくある質問
Whisper は話者を区別できますか?
いいえ。文章を一続きで書きます。話者を分ける(話者分離)には別のモデルが必要なので、名前は手で入れてください。
だれも話していない文が入るのはなぜですか?
Whisper はありそうな文章を予測するため、無音や音楽、雑音の部分では、よく見かける表現(締めのあいさつなど)を続けて書くことがあります。無音の区間を飛ばすと減りますが、録音と照らし合わせて読む必要があります。
録音を英語に翻訳できますか?
Whisper のモデルにはその機能がありますが、このツールは文字起こしだけを行い、話された言語のまま書きます。
動画サービスにはどの形式が必要ですか?
多くの動画編集ソフトや動画サービスは SRT を受け付け、ウェブのプレーヤーは VTT を使います。迷ったら両方をダウンロードしておいてください。中身は同じです。
出典
出典:OpenAI, Whisper (README)・確認日:
出典:OpenAI, Model Card: Whisper・確認日:
出典:W3C, WebVTT: The Web Video Text Tracks Format (Candidate Recommendation Draft, 20 May 2026)・確認日: