音声の遅延を1秒削る — どこに時間がかかっているか
音声AIの応答が遅いとき、どこで時間がかかっているかを知らずにモデルを替えても効果が出ない。遅延を段に分けて、削れる場所を特定する。
編集部
AI Tools Hub 編集部 · 公開 2026-11-01

遅延の内訳
| 段 | 何をしているか | 削り方 |
|---|---|---|
| 発話の終了検知 | 話し終わったと判断する | 無音の待ち時間を短くする(切りすぎると途中で割り込む) |
| 文字起こし | 音声をテキストに | ストリーミング対応のエンジンにする |
| 推論 | 何を答えるか決める | 速いモデル、短いプロンプト |
| 音声合成 | テキストを声に | 低遅延特化のエンジン、文単位でのストリーミング |
| ネットワーク | 往復 | 近いリージョンを使う |
最初に見るのは発話終了の検知
意外に大きいのがここである。「話し終わった」と判断するまでの無音の待ち時間が1秒に設定されていれば、他をどれだけ速くしても1秒は縮まらない。
短くすると、相手が考えている途中で割り込んでしまう。日本語は文末に意味が来るので、英語の設定をそのまま使うと割り込みが増える。実際の通話で調整する必要がある。
プロンプトの長さが効く
最初のトークンが出るまでの時間は、入力が長いほど伸びる。会話履歴を全部送る実装だと、通話が進むほど応答が遅くなる。直近数ターン+要約に変えると、長い通話でも一定に保てる。
文単位で合成に回す
生成が全部終わってから音声合成を始めると、その分だけ待つことになる。文が1つ完成するたびに合成へ送れば、最初の音が出るまでの時間が大きく縮む。
実装は複雑になる。途中で言い直せなくなるので、生成の方針を変える必要が出ることもある。それでも体感への効果は、どのモデル変更より大きい。
沈黙を埋める
技術的に削れない部分は、音で埋める。相槌、「確認いたします」といった短い発話、あるいは軽い環境音。無音が続くより、相手は待てる。
測ってから手を打つ
各段の所要時間を記録してから、一番長い段に手を入れる。測らずに速いモデルへ替えて、実は文字起こしが遅かった、という結末になるチームが多い。
よくある質問
- Q. どれくらいなら許容されますか。
- A. 電話では1秒を超えると相手が反応を確かめ始めます。0.5秒以下を目標にして、超える分は相槌などで埋めるのが現実的です。


