オフラインで文字起こしする ― 音声を外に出さない仕組み
文字起こしアプリの多くは、音声をサーバーへ送って処理します。 このアプリは端末の中で認識するので、通信がなくても動き、音声がどこかへ渡ることもありません。 何が端末内で行われ、何のために通信するのかを具体的に説明します。
端末内で認識するとはどういうことか
音声認識には学習済みのモデルが必要です。クラウド型はモデルをサーバーに置き、音声を送って結果を受け取ります。 端末内型はモデルそのものを端末へ置き、音声を動かさずに処理します。iOS 版は whisper.cpp を使い、この後者の方式で動きます。
リアルタイム文字起こしには Apple の音声認識を使いますが、こちらも端末内認識を必須に設定しています
(requiresOnDeviceRecognition)。設定していない場合、iOS は音声を Apple のサーバーへ送ることがあります。
端末内認識に対応していない言語は、そもそも選べないようにしてあります。
通信が必要なのは最初の一度だけ
モデルは容量が大きいため、アプリに同梱せず、選んだときにダウンロードします。取得元は Hugging Face です。 送信されるのは「このモデルをください」という要求だけで、録音データは含まれません。
一度取得すれば、以降は機内モードでも山の中でも文字起こしできます。 取材先や移動中に結果まで出したい場合は、出発前にモデルを取っておくのが確実です。
モデルの選び方
軽いモデルほど速く、重いモデルほど正確です。容量と処理時間が変わります。 用途で選ぶと迷いません。
| 用途 | 選び方 |
|---|---|
| 内容の把握、検索用のメモ | 軽いモデル。長い録音でも短時間で終わります |
| 発言をそのまま引用する | 重いモデル。固有名詞と数字の崩れが減ります |
| 日本語と英語が混ざる | 多言語対応のモデル。英語専用は日本語を扱えません |
全体は軽いモデルで通し、引用したい箇所だけ重いモデルでやり直す進め方が、結局いちばん速く終わります。
精度を上げるのは録音のほう
モデルを重くしても、元の音が悪ければ限界があります。効くのは次の順です。
- マイクと話者の距離を縮める
- 空調・プロジェクター・道路の音から離れる
- 圧縮のない WAV で録る
- 重いモデルへ変える
外へ出るデータ
端末内で完結するのは録音と文字起こしの処理です。無料提供のため広告を表示しており、 広告の配信と利用状況の把握のために情報が送信されます。録音・映像・書き起こしの本文は含まれません。 詳細はiOS 版のプライバシーポリシーに一覧で書いています。
よくある質問
モデルを削除したらどうなりますか
文字起こしができなくなります。録音そのものは残ります。もう一度取得すれば元どおり使えます。
文字起こしに時間がかかります
端末内で処理するため、録音の長さと選んだモデルの重さに比例します。 軽いモデルへ変えるか、必要な部分だけを対象にしてください。
Android 版も同じですか
Android 版も端末内で認識しますが、採用しているエンジンが異なります。 取り扱いはAndroid 版のプライバシーポリシーをご覧ください。