背景

オンライン会議や対面での多言語コミュニケーションでは、翻訳の待ち時間が会話のテンポを壊してしまいます。「話し終わってから訳す」逐次通訳型ではなく、話している途中から原文字幕が出て、発話が終わるたびに訳が安定して確定する体験をソフトウェアで作れないか、という検証です。

仕組み・構成

ブラウザ側はSilero VADで発話境界を検出し、音声をPCMバッファに蓄積。約0.4秒の無音(soft境界)で暫定の文字起こしを表示し、約1秒の無音(hard境界)で原文を確定して反対言語への翻訳を実行します。STTにはGroqのwhisper-large-v3-turbo、翻訳にはLlama 3.3 70Bを使用。言語は発話ごとに自動判定され、英語は常に左、日本語は常に右という言語固定の2ペインに表示されます。APIキーを秘匿するため、Groqへのリクエストは静的配信も兼ねる単一のCloudflare Worker経由です。

工夫・検証ポイント

肝になるのは「部分確定と訳し直し」のバランスです。早く出すほど誤認識やちらつきが増え、確定を待つほど遅延が増えます。本PoCでは断片のテキスト結合をやめ、暫定表示のたびに「直近の確定以降の音声全体」をWhisperに投げ直す設計を採用。VADが文の途中で早切れしても、次の認識がより長い区間を読み直して自然に上書き訂正されます。翻訳を確定時のみに限定して訳文のちらつきを防ぎ、世代番号で遅延レスポンスによる確定済みテキストの上書きも防いでいます。STT・翻訳のレイテンシはチューニングログとしてCSVに記録し、無音閾値などのパラメータ調整に使っています。

デモ・解説

デモ動画・解説記事を準備中です。公開しだい、このページに掲載します。