整形パス
別名:後処理
更新日:
定義
整形パスとは、音声認識の後に行われる処理で、未加工の文字起こし結果を、人がタイプしたようなテキストに変えます。句読点、大文字・小文字、数字表記、言いよどみの除去、そして入力先に合ったトーンです。音声入力ツール同士の違いの大部分は、ここにあります。
認識エンジンが出力するのは単語です。「ten thirty am」は10:30 AMにすべきこと、Slackのメッセージは小文字でクライアント宛てのメールはそうではないこと、「bob at acme dot com」がメールアドレスであることは知りません。それを知っているのが整形パスです。少なくとも、知っているべきものです。初期のツールはルールで処理していました。現在の世代は小さな言語モデルを文字起こし結果にかけています。最も優れたツールはその両方を使い、正解が1つしかないものにはルールを、判断が必要なものにはモデルを使います。
整形パスは、失敗の仕方が最も多い処理でもあります。「きれいにして」と頼まれたモデルは、言い換えたり、引き締めたり、ときには内容をでっち上げたりします。そして遅いモデルは、速いツールを待合室に変えてしまいます。製品が整形パスをどう制約しているかは、どの認識エンジンを使っているかよりも、その品質について多くを教えてくれます。
良い整形パスがすること
言いよどみと言いかけを除去します。句読点を打ち、大文字・小文字を整えます。数字、時刻、日付、価格、単位、メールアドレス、URLを正しい形式で書きます。「new paragraph」のような音声コマンドを適用します。スニペットと辞書の用語を、保存したとおりに正確に挿入します。入力先アプリに合わせてカジュアルやプロフェッショナルなトーンにし、アプリごとに固定することもできます。ターミナルとコードエディタには手を加えません。このリストの項目はすべて、ルールか、狭く限定された指示を受けたモデルのどちらかで処理され、順序が重要です。まずルールを適用するので、モデルが時刻を勝手に解釈し直すことはありません。
ルールとモデル
言語モデルは判断は得意ですが、正確さは当てになりません。「ten thirty AM」と言えば、たいていは10:30 AMと書きます。問題はこの「たいてい」です。10:30 PMと書かれたことに、会議を逃すまで気付かないからです。時刻、句読点の音声入力、辞書の単語、スニペット、記号名など、正解が1つしかないものはすべて、毎回同じ出力を返しテストもできる決定的なルールで処理すべきです。モデルに任せるのは残りの部分です。文の流れ、段落の区切り、どの言いよどみが本当に言いよどみだったか、そしてトーンです。
ガードレール
こだわるべきものは3つあります。1つ目は内容チェックです。モデルの出力から話した言葉が抜けていたり、話していない言葉が加わっていたりしたら、それを破棄し、ルールで整形した文字起こし結果を使います。2つ目は時間制限です。決められた時間内にモデルが応答しなければ、文字起こし結果はモデルを待たずに入力されます。3つ目は「そのまま」への逃げ道です。どんな書き換えもバグになるアプリには、モデルをまったく使いません。これらがあれば、整形パスはテキストを改善するか、何もしないかのどちらかで、音声入力を壊すことはありません。
Appleの音声入力で自分でテキストを整形する方法
Appleに標準で入っている音声入力は、この作業のごく一部を自動で行い、残りは音声コマンドに任せています。その境目がどこにあるかがわかれば、より本格的な整形処理が何を肩代わりしてくれるのかがわかります。
自動で行われるのは自動句読点です。対応する言語では、話している間に読点、句点、疑問符を入れます。段落、デフォルト以外の大文字、記号は、声に出して指示します。
- アップルメニュー→「システム設定」と選択し、サイドバーで「キーボード」をクリックして、「音声入力」に移動します。
- 音声入力をオンにします。読点、句点、疑問符を自動で入れたい場合は、自動句読点がオンになっていることを確認します。
- 音声入力を始め、区切りを入れたいところで「次の行」または「次の段落」と言います。
- 数の前に「数字」と言うと、次の語句が数字として整形されます。
- 「大文字入」と言うと、続く単語の先頭文字が大文字になり、「大文字オフ」で元に戻ります。「すべて大文字」と言うと、次の単語がすべて大文字になります。
- 記号の名前を言うと、その記号が入力されます。たとえば「アットマーク」「パーセント記号」「ハッシュタグ」「ドル記号」です。
- 結果を読み返します。まだ手で直す必要があったところは、整形処理が担うべき作業です。
整形処理と逆テキスト正規化
逆テキスト正規化は、この作業の一部を指す、より古く範囲の狭い呼び名です。話し言葉の形を書き言葉の形に変えることで、たとえば「ten thirty」を10:30にします。Whisperの論文によると、多くの音声認識システムはある程度これを備えていますが、単純なものやルールベースのものが多く、処理しきれずに残す部分(たとえばカンマをまったく入れないこと)から見分けられます。
新しいオープンモデルは、その作業の一部を認識そのものに取り込みました。Whisperは文字起こしのテキストを書かれたとおりに予測するよう学習しており、開発者によれば、そのため別途の逆テキスト正規化の工程が要りません。NVIDIAは、Parakeet TDT 0.6B v2が句読点と大文字表記に直接対応していると説明しています。
整形処理とは、そのあとに行われることすべてです。認識モデルが付けた句読点は出発点にすぎません。言いよどみの除去、自分の用語の適用、入力先アプリへの合わせ込みは別の工程で、認識モデルは行いません。
macOSで独自の整形ルールを追加する方法
macOSにはルールベースの小さな整形の仕組みがあり、決定的なルールとは何かがよくわかります。同じ入力からは常に同じ出力が得られます。テキストの置換(ユーザ辞書)はある文字列を別の文字列に置き換え、スマート引用符とスマートダッシュは入力中に句読点を変えます。
Appleによると、テキストの置換、スマート引用符とスマートダッシュ、スマートリンクは、すべてのアプリで使えるわけではありません。テキストが曲がった引用符になったり、思いがけない置換が起きたりした場合は、ほかを調べる前にこれらの設定を確認してください。
- アップルメニュー→「システム設定」と選択し、サイドバーで「キーボード」をクリックします。
- 「ユーザ辞書」をクリックします。
- 追加ボタンをクリックし、「入力/読み」に置き換える前のテキスト、「変換/語句」に置き換え後のテキストを入力して、「追加」をクリックします。
- 引用符とダッシュの動作を変えるには、「キーボード」設定の「テキスト入力」で「編集」をクリックします。
- 「スマート引用符とスマートダッシュを使用」をオンまたはオフにし、必要なら引用符のスタイルを選んで、「完了」をクリックします。
- 個別のアプリでは、「編集」→「自動置換」と選択すると、そのアプリでの「テキストの置換」をオンまたはオフにできます。
よくある質問。
音声入力ソフトの後処理とは?
音声モデルが文字起こし結果を出した後に、それに対して行われるすべての処理です。句読点、大文字・小文字、数字の書式、言いよどみの除去、音声コマンド、トーンが含まれます。文字起こし結果を文章に変える段階であり、ツールごとの差が最も大きい段階でもあります。
整形にはAIが使われていますか?
現在のほとんどのツールでは、一部に使われています。トーンや文の流れなど判断が必要な部分は、小さな言語モデルが担います。より優れたツールは、時刻や句読点など正解が1つしかないものを、代わりに固定のルールで処理します。モデルは「たいてい」正しいだけだからです。
整形をオフにできますか?
良いツールでは、「そのまま」から完全に洗練された状態まで、レベルを選べます。また、ターミナルやコードエディタでは自動的に「そのまま」に切り替わります。整形を減らせばテキストも速く出るので、短い返信には妥当なトレードオフです。
Appleの音声入力は句読点を自動で付けますか?
はい、対応する言語では付けます。Appleの音声入力は読点、句点、疑問符を自動で入れます。この機能は「システム設定」の「キーボード」にある「音声入力」セクションでオフにできます。それ以外の句読点は、名前を言って入力します。
逆テキスト正規化とは何ですか?
話し言葉の形を書き言葉の形に変える工程で、たとえば読み上げた数を数字にします。整形処理の一部で、新しい音声認識モデルの中には句読点や大文字表記を直接出力するものもあり、その分この工程の出番は減っています。
音声入力で数を数字で書かせるには?
Appleの音声入力では、数の前に「数字」と言います。次の語句が数字として整形されます。より本格的な整形処理を備えたツールは、コマンドなしで数、時刻、金額を変換します。