ストリーミング文字起こし
別名:リアルタイム文字起こし
更新日:
定義
ストリーミング文字起こしは、話し終えてからではなく、話している最中に画面に言葉を表示します。もう一方のバッチ文字起こしは、発話全体をまとめて処理し、最後にテキストを表示します。
ストリーミングには、途中結果を出し、音声が届くにつれてそれを修正できるように作られたモデルが必要です。これは録音済みの音声を文字起こしするのとは別の技術的な課題です。すべてのASRモデルがストリーミングできるわけではなく、製品は一部の言語ではストリーミングし、ほかの言語ではバッチに切り替えることがよくあります。
音声入力にとって、ストリーミングは主に安心感のためのものです。言葉が届くのが見えれば、ツールが聞き取っていることがわかります。最終的なテキストの品質は、どちらの場合も、発話の終わりに行われる処理で決まります。
ストリーミングで音声入力が即座に感じられる理由
バッチ認識では、キーを離したときにモデルが動き始め、録音全体が処理されるのを待つことになります。待ち時間は話した長さに比例します。ストリーミングでは、モデルがずっと追いついているので、キーを離した時点で残っているのは最後の一瞬分の音声と整形の処理だけです。その結果、文が長くなっても遅延は増えません。人がツールを「速い」と言うのは、このことです。
効果はもう1つあります。リアルタイムの言葉を見ていれば、ツールが正しく聞き取っているとわかるので、あとで結果をちらりと確認しなくなります。この信頼こそが、音声入力を試しに使うものから習慣に変える要因の大部分です。
途中結果と修正
ストリーミングモデルは言葉を仮に確定し、音声が届くにつれて考えを変えることがあります。たとえば「会議はあります」が、一瞬後に「会議はありません」に変わります。優れたツールは、こうした修正をノッチのオーバーレイやフローティングのピル型表示のような一時的な表示で見せ、確定したテキストだけをドキュメントに挿入します。リアルタイムの途中結果をアプリに挿入してから書き換えるツールは、テキストエディタとぶつかり合うことになります。
すべての言語でストリーミングできない理由
ストリーミングには、その言語向けに訓練されたトランスデューサ型のモデルが必要です。現在うまくストリーミングできるファミリーが対応しているのは数十言語で、Whisperのようなバッチモデルは約100言語に対応しています。「99言語対応、リアルタイム表示」をうたうツールは、たいていトランスデューサが対応する言語ではストリーミングし、残りはバッチで処理しています。誠実な製品ページなら、どちらがどちらかを書いています。
Macでストリーミング文字起こしを確かめる方法
macOSには、ストリーミング文字起こしの例として「ライブキャプション」が組み込まれています。アプリの音声やマイクが拾った音に対して、音声が再生されている最中にキャプションを表示します。Appleによると、音声はデバイス上で処理されます。ライブキャプションはApple silicon搭載のMacでのみ利用でき、すべての言語、国、地域で利用できるわけではありません。
- アップルメニュー→「システム設定」と選択し、サイドバーで「アクセシビリティ」をクリックします。
- 「ライブキャプション」をクリックして、オンにします。
- 任意のアプリでビデオやポッドキャストを再生します。
- キャプションウインドウを見ます。話し手がまだ話している間にテキストが表示されます。これがストリーミングです。
- 終わったら、同じ場所でライブキャプションをオフにします。
WhisperとParakeetはリアルタイムで文字起こしできますか?
Whisperの場合、そのままではできません。OpenAIのモデルカードには、Whisperのモデルはそのままではリアルタイムの文字起こしには使えず、それをもとにほぼリアルタイムのアプリケーションを作れる可能性はあると書かれています。リファレンスコードは、完成したファイルに対して30秒の窓をずらしていきます。
Parakeetの方が近いと言えます。NVIDIAのParakeet TDT 0.6B v3のモデルカードにはストリーミングモードが記載されていて、その設定例には、どのストリーミング構成にもあるトレードオフが表れています。音声は2秒のチャンクで処理され、前の音声10秒と後の音声2秒が文脈として使われます。後の音声は先読みです。先読みが長いほどモデルが使える手がかりは増えますが、そのぶん単語が表示されるのも遅くなります。
ストリーミングかバッチか:どちらが必要ですか?
ストリーミングが重要なのは、人が言葉を待っているときです。音声がすでにファイルとしてある場合は、バッチで十分で、たいていはその方が簡単です。ツールを選ぶときは、用途にモードを合わせてください。
- テキストフィールドへの音声入力:ストリーミング。聞き取られていることを確認できるからです。
- ライブの通話や講演の字幕:ストリーミング。文が終わってから届く字幕はほとんど役に立たないからです。
- 録音した会議、インタビュー、講義の文字起こし:バッチ。言葉が届くのを見ている人はいません。
- 字幕ファイルの作成:バッチ。Whisperのコマンドラインツールは、srtとvttのファイルを直接書き出します。
- ストリーミングモデルが対応していない言語:その言語に対応したモデルでバッチ。
よくある質問。
ストリーミング文字起こしとバッチ文字起こしの違いは?
ストリーミングは話している間に言葉を表示し、話し終えるとほぼすぐに完了します。バッチは話し終えるまで待ってから録音全体を処理するので、話した長さに応じて待ち時間が延びます。どちらも正確になりえますが、ストリーミングのほうが速く感じられ、聞き取っていることもわかります。
ストリーミングするとテキストの精度は下がりますか?
確定した結果では下がりません。ストリーミングモデルは音声が届くにつれて言葉を修正することがありますが、挿入されるのは最終的なテキストです。体感する精度は、ストリーミングかどうかよりも、モデルの品質とマイクに左右されます。
音声入力ツールが英語ではストリーミングするのに、ほかの言語ではしないのはなぜですか?
ストリーミングモデルがその言語に対応しておらず、バッチモデルに切り替えているからです。テキストは正しく出るはずですが、話している間ではなく、話し終えたあとに表示されます。
Whisperはリアルタイムで文字起こしできますか?
そのままではできません。OpenAIのモデルカードによると、Whisperのモデルは提供されたままの状態ではリアルタイムの文字起こしには使えませんが、それをもとにほぼリアルタイムのアプリケーションを作ることはできます。
Macにはリアルタイムの文字起こしが組み込まれていますか?
はい。「システム設定」→「アクセシビリティ」→「ライブキャプション」にあるライブキャプションは、再生中の音声のキャプションを表示します。Apple silicon搭載のMacでのみ利用でき、すべての言語や地域で利用できるわけではありません。
リアルタイムの文字起こしにはインターネット接続が必要ですか?
必ずしも必要ではありません。ストリーミングが表しているのは言葉がいつ表示されるかであって、音声がどこで処理されるかではありません。Appleによると、Macのライブキャプションは音声をデバイス上で処理します。