タグ
#Gemini
Geminiに関する記事を公開しています。
Gemini Live API で turnComplete 後に音声が届かない
Gemini Live API の応答計測で、8 キュー連続で「転写あり・音声 0ms」という結果が出ました。原因は API ではなく、turnComplete 受信で収集を打ち切っていた自分の完了判定です。映像ストリーミング併用時は turnComplete が音声チャンクより 0.7〜1.3 秒先に届きます。turnComplete と音声途絶を合成した完了判定に直すと 8/8 で正常受信になりました。
SDK なしで Gemini Live API を WebSocket で直接叩く
SDK を使わず ws と https-proxy-agent だけで Gemini Live API(BidiGenerateContent)と話す計測プローブの材料一式です。setup からのメッセージシーケンス、24kHz PCM を WAV にして聴く方法、企業プロキシ+社内 CA 環境での接続、実測した接続時間とセッション原価まで載せています。
Gemini Live API の proactive audio は自発的に喋らない
proactive audio という名前から「AI が自発的に喋り出す機能」を期待して設計を組んだら、公式リファレンスの定義は「直前の入力への応答を拒否できる」、つまり黙る自由を与える機能で、向きが逆でした。自発的に喋るエージェントを作るならテキストキュー駆動が正解で、実測の初動 0.6〜1.0 秒で実用になります。2.5 Flash Live 系限定という制約も含めて整理しました。
Gemini Live API のセッションが突然切れる 3 つの制限
Gemini Live API のセッションが切れる理由は、セッション時間の上限・WebSocket 接続の寿命・ephemeral token の期限の 3 層に分かれていて、対処がそれぞれ違います。公式ドキュメントの数値を出典付きで整理し、GoAway が来ない切断への備えと、会話の切れ目まで粘ってから張り替える実装パターンをまとめました。
Gemini Live API にテキストを送っても音声が返らない原因
Gemini Live API に clientContent でテキストを送ったのに、音声もエラーも一切返ってこない症状の原因です。turnComplete: false で送ったテキストは 2 モデルとも 7 発話中 0 応答で、完全に無視されました。エラーが返らないぶん切り分けが難しく、対処は毎回 turnComplete: true で送ることです。3.1 系のドキュメント記載との食い違いも記録しています。
Gemini Live API の音声応答が 6 秒遅れる原因は thinking
Gemini Live API の native audio モデルで、テキストを送ってから音声が返るまでの初動が最大 6 秒かかっていました。原因はモデルの地力ではなく、思考モード(thinking)が既定で有効なことです。thinkingBudget: 0 を指定すると初動の中央値は 976ms、最悪値も 1.3 秒に収まりました。preview 2 モデルでの実測データ付きです。