自動判定が外し続けるなら、言語を固定する

音声入力が違う言語で着地し続ける? 自動判定は、その仕組み上、バイリンガルの発話で揺れます。一度言語を固定すれば、固定されたままです。

Teodor Deleanu2026年7月10日読了時間:約10分

複数の言語で音声入力するなら、この失敗を見たことがあるはずです。ルーマニア語で一文話すと、文字起こしが音だけをなぞった英語になって返ってくる。実在する単語ばかりで、そのどれもあなたの言葉ではありません。あるいは文の途中で切り替わる。前半は正しい言語で、後半はモデルが「切り替わった」と判断した何かの言語。あるいは、私の個人的なお気に入り、混ざったアルファベットのスープ。ラテン文字の中にキリル文字がいくつか散らばっていて、モデルが 1 文字ずつ賭けをヘッジしたかのようです。

これは特定の製品への苦情ではありません。自動言語判定の予測できる失敗モードであり、Keebye の英語向けデフォルトも含まれます。訛りのある英語を話す人にも、一日のうちにコードスイッチする人にも当たります。Slack がポーランド語でコミットメッセージが英語というバイリンガルの開発者は、自動判定が最も苦手とする混ざった信号をそのまま与えていることになります。

苦情の後半はもっと静かですが、同じくらい本物です。言語の設定が 存在する ときでも、それはたいてい埋もれています。メニューを 3 階層下りて、エンジンのピッカーの奥、名前に言語のげの字も出てこないトグルの向こう。一日に 20 回言語を切り替えるなら、埋もれた設定は機能的には設定がないのと同じです。

なぜ揺れるのかを説明したいと思います — 自分のプロダクトの戦記を使って。Keebye にも、修正を持つ前はこの問題がありました — そのうえで、実際の解決策がどんな形をしているかをお見せします。

なぜ自動判定は揺れるのか(そして、なぜそれは厳密にはバグではないのか)

正直な仕組みはこうです。現代の音声モデルは、デコードの一部として、言語の識別を静かに行っています。モデルは聞き、いま聞いているのが何語かについて内部的な推測を立て、その推測に対してデコードします。音声がクリアで、訛りがなく、単一言語なら、これはうまく動きすぎて、意識することすらありません。

そこに現実の発話を与えてみてください。訛りは母音を別の言語の音素の方へずらします。文の中には英語からの借用語が 3 つ入っています — どんな技術的な会話にも入っています。背後に子どもがいる、あるいはノートパソコンのマイクで話している。これらのどれもが、モデルの内部的な言語の推測の確信度を下げ、確信度の低い推測はフレームごとに反転しえます。反転すればデコードも反転し、思考の途中で言語が変わる文字起こしが出てきます。

肝心なのはここです。ほとんどのツールでは、その推測をつなぎ止めるものが何もありません。モデルが、静かに、発話ごとに決めていて、こちらに上書きする手段はありません。これは特定のアプリのバグではなく、静かな自動判定 とはそういうもの だということです。訂正できない判断をモデルが下している。

私はこれを痛いほど知っています。Keebye のデフォルトエンジンが、まさにこの性質を持っているからです。英語向けデフォルトの Parakeet は、デコード層で言語のヒントを無視します — これから何語を話すのかを伝えることはできません。明瞭な英語では優秀で、だからこそデフォルトです。不明瞭な音声では、このカテゴリの他のすべてと同じように、言語の間で揺れることがあります。まず自分のプロダクトについてこれを話しているのは、問題が競合の雑さではなくアーキテクチャに住んでいると認めて初めて、修正の意味が分かるからです。

言語を固定すると、実際には何が起きるのか

修正は、モデルに推測させるのをやめることです。Keebye には 2 つ目のオンデバイスエンジンが載っています — NVIDIA の Canary 1B v2 を int8 に量子化したもの — で、ちょうど 25 言語をカバーします。ブルガリア語、クロアチア語、チェコ語、デンマーク語、オランダ語、英語、エストニア語、フィンランド語、フランス語、ドイツ語、ギリシャ語、ハンガリー語、イタリア語、ラトビア語、リトアニア語、マルタ語、ポーランド語、ポルトガル語、ルーマニア語、スロバキア語、スロベニア語、スペイン語、スウェーデン語、ロシア語、ウクライナ語です。デフォルトのエンジンと違い、Canary は言語の指示を受け取り、それに従います。

Keebye はそれを「固定(ピン)」として提供します。発話ごとに Canary エンジンへ渡される、明示的な言語設定です。ルーマニア語に固定すれば、デコーダは自動的に言語を選ぶ代わりにルーマニア語を使います。認識そのものは、とくに借用語やノイズの多い音声の周りでは、それでも間違うことがあります。けれども言語の選択は、もう検証されない推測ではありません。

この設定は、音声入力のたびにその場で読まれます。変更すれば、アプリを再起動しなくても、次に押しながら話す音声入力から新しい言語が使われます。これは聞こえるより大事です。言語のコントロールは、切り替えが仕事を中断しないときに、はるかに役に立つからです。

そして Canary も Keebye の他のすべてと同じくオンデバイスで動くので、固定はプライバシーの話を犠牲にしません。モデルは約 1.3 GB で、ダウンロードは一度きり。そのあとは、あなたのルーマニア語も、ポーランド語も、ウクライナ語も、マシンを出ません。(ローカルの多言語音声入力がそもそもなぜ重要だと考えているかは、それ自体がひとつの記事です — 音声入力が英語だけであってはいけない理由。この記事はその実践編です。あちらは言語そのものを擁護し、こちらはそれを実際に使えるものにする話です。)

メニュー 3 階層ではなく、2 クリック

届かない固定は、使われない固定です。だから切り替えはトレイに置いてあります。Keebye のメニューバーアイコンには「Dictation Language」メニューがあり、11 言語の選び抜かれたショートリストが並びます — 英語、ルーマニア語、フランス語、ドイツ語、スペイン語、イタリア語、ポルトガル語、オランダ語、ポーランド語、ロシア語、ウクライナ語。どのアプリからでも 2 クリックです。トレイをクリックして、言語をクリックする。設定を開くことも、作業していたウィンドウを離れることもありません。

25 言語の全リストは、ショートリストの外の言語のために設定にあります。とはいえ、ショートリストはたいていのバイリンガルな仕事の日常をカバーします。チームにはある言語で、クライアントや AI エージェントには別の言語で書いていて、その切り替えにコストがかかってはいけない、という現実です。

もうひとつ知っておく価値のあるオプションがあります。人によっては固定の使い方そのものを変えるものです。英語への翻訳トグルです。自分の言語で話すと、英語がカーソルに着地します — 同じエンジン、同じオンデバイス実行です。頭の中の独り言はルーマニア語なのに、出力は英語である必要がある場合(コミットメッセージ、コーディングエージェントへのプロンプト、国際的なチームへの返信)、これは頭の中でやっていた翻訳の工程をつぶします。私自身、思っていたよりよく使っています。

固定の代価

25 言語は 25 言語です。 クラウドの音声入力ツールはもっと多く並べます。大きなサーバー側モデルに音声を送るのが、言語を増やす安い方法だからです。それがオンデバイスの本当のトレードオフです。Mac に収まるモデルは、データセンターを埋めるモデルより世界の狭い範囲しかカバーしません。自分の言語がその 25 に入っていないなら、Keebye の多言語エンジンは今日のところ対応していません。切り上げるより、そう言う方を選びます。

固定は、固定です。 これは決定性の裏側で、はっきり書いておきたいところです。ルーマニア語に固定してから英語を話せば、Keebye は切り替えるまで、あなたの英語をルーマニア語として忠実に誤デコードします。エンジンは、言われたとおりのことをしています。自動判定の魅力はまさに、これを考えなくていいことでした。固定は、その手軽さと引き換えに予測しやすさを得ます。私の経験では、その取引は割に合います。制御できない誤った推測より、2 クリックで直せる誤った設定の方がましだからです。とはいえ、これは取引であって、ただ飯ではありません。

トレイのショートリストは 11 言語で、25 ではありません。 日常の組み合わせにたとえばフィンランド語やギリシャ語が入っているなら、その片方は設定を経由することになります。取捨選択とは、誰かの言語がクイックメニューに入らなかった、ということです。

この苦情の行き着く先

カテゴリレベルの苦情 —「音声入力が違う言語で出てき続ける」— は、実のところ、静かな判断への苦情です。モデルが推測し、推測が外れ、そうではないと伝える手段がなかった。推測を残したままの修正(判定の改善、より長い音声窓、確信度のしきい値)はどれも、失敗をより稀に、より奇妙にするだけです。この苦情を本当に終わらせる修正は、判断をユーザーに返すことです。

いま別のツールでこれを生きているなら、比較ページは、それぞれのツールがどこに合うかを正直に書いています — Keebye vs SuperwhisperKeebye vs Wispr Flow は、どちらも言語の問いを扱っています。固定そのものを試すなら、下から無料トライアルを始めて、この記事の冒頭のルーマニア語やポーランド語の文をもう一度再現し、あの揺れのうちどれだけが自分の訛りではなく検証されない推測から来ていたのかを見てください。

実際に使う言語を固定する

無料トライアルを始めて、自動判定にこれまで崩されてきた母語の返信を、もう一度再現してみてください。

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

続きを読む