「フォルダーは四つ、いや、六つもらいます。」音声認識システムはこの文を正しく書き起こすことができます。読みやすい字幕にするために、言い直しの部分を短くしたくなることもあるでしょう。その際、六つが四つに戻ってしまってはいけません。つまり、音声からテキストファイルへの技術的な道のりは、編集作業の始まりにすぎません。
whisper.cpp は、CPU対応を含むローカル音声認識について文書化しています。適切なモデルファイルと実行環境のファイルを用意する必要があります。英語専用版か多言語版か、また文字起こしか翻訳かは、それぞれ別の判断です。ローカルで起動したプログラムが、望む作業を自動的に実行してくれるわけではありません。
元の言語と目的を確定する
まず、話された内容をその言語のまま残すのか、英語に訳すのかを決めます。ドイツ語の録音からドイツ語の文字起こしを作るのは、英語への翻訳とは別の作業です。最初の目的に対しては、流暢な英語のテキストであっても誤った結果になります。
なお、 サーバーの説明 では、元の言語から英語への翻訳に –translate を使用し、–language で話されている言語を指定します。実際に実行する際は、異なる例の設定を混ぜるのではなく、該当するヘルプからオプションを確認してください。
自分で短い録音を用意する
機密性のない文をいくつか自分で録音します。数量の変更、架空の固有名詞、そして「確認を取った後に限る」といった制限を含めます。あらかじめ、既知の文言を書き留めておきます。意図的に短い間を入れておくと、単語の認識と時間上の区切りを分けて確認するのにも役立ちます。
準備済みのローカル環境と、それに合った音声形式を使用します。まず、話された言葉にできるだけ忠実なテキストの土台を作成します。数字と名前が出てくる箇所をもう一度聞き直し、不明瞭な部分には印を付けます。名前リストにある想定の綴りで、実際に聞き取りにくい箇所を黙って置き換えてはいけません。
この土台は、後で短くする字幕版とは分けて保管します。そうすることで、どの変更が認識によるもので、どの変更が自分の編集作業によるものかをたどれます。この記事が示すのは方法であり、ここで実際に行った文字起こしではありません。
時間がファイル形式の一部になる
字幕トラックは、テキストを時間範囲の開始と終了に結び付けます。 W3C仕様のWebVTT形式 は、このように時間に合わせたテキストセグメントを記述しています。当編集部が作成した簡単な形式の例は次のとおりです。時間は説明用の値であり、実際の録音に合わせて調整する必要があります。
WEBVTT
00:00:00.000 --> 00:00:04.000
We need six folders for the course.
00:00:04.500 --> 00:00:07.000
Open sealed material only after checking back.
実際に合うように編集したテキストをUTF-8ファイルとして保存し、対応する録音と一緒に適切なプレーヤーや字幕ツールで確認してください。テキスト、タイミング、読みやすさは、三つの別々の観点です。正しい行でも、表示が早すぎたり、表示時間が短すぎたりすることがあります。
改行は意味のまとまりで入れます。「ない」が単独で行に置かれていると、速く読んだときに誤解されることがあります。承認の条件も、不適切な区切りで見えなくなるのではなく、文脈の中で認識できるように残すべきです。
元の音声、文字起こし、字幕には、同じファイル名の語幹と異なる拡張子を付けます。言語と編集状況についての短いメモを添えておけば、古い翻訳版が誤って新しい元の録音の横に置かれることを防げます。
ローカルのワークフローで確かめられること
このサンプルを使えば、準備した環境が望むテキストを出力するか、字幕にどの程度の編集が必要かを調べられます。ただし、あらゆる言語、なまり、背景雑音にわたる認識品質について、一般的なことは何もわかりません。
翻訳処理は、それとは別のテストになります。綴りだけでなく、意味の比較が必要です。同じ録音に複数の言語が含まれている場合は、該当する箇所を聞き取り確認に明示的に含めてください。
ローカル処理の利点は、自分で説明できる独自の作業経路を持てることにあります。使える字幕は、この経路を実際の録音と結び付けたときに生まれます。つまり、適切な作業を選び、文言を確認し、意図を持って編集し、タイムスタンプに照らしてテキストを見直すことです。
出典と情報の時点
出典は2026年十月25日時点のものです。 whisper.cpp README · whisper.cpp サーバー例のオプション。
W3C: WebVTT (形式に関する補足資料)。

