These are real WAV files from the local prototype. John = Schedar, Jessica = Tari, both Gemini 3.8 Flash TTS.
John, Schedar:
Jessica, Tari:
Test input utterance:
This records locally and plays back locally. A static Pages site cannot transcribe it and cannot send it to Muse. Transcription in the local prototype used gemini-3.5-transcribe, not Live.
Enter a Gemini API key below only if you want to test TTS yourself. The key field is password-type, is never logged, and is not saved to local storage. The request goes from your browser directly to Google. This speaks exactly the text you type — it does not generate a Muse answer.
TTS model used: gemini-3.8-flash-tts. If the key is wrong or the model is unavailable, Google will return an error and it will be shown below, with no key shown.
Disabled until you enter a key above. LIVE ANSWERING TEST MODE — READ THIS FIRST: In this section only, Live answers by itself. That answer is Google's answer, NOT a Muse answer, and NOT the locked Muse-only call rule. This test mode exists only so Hari can check that the mic, Live connection, and speaking-back work at all. A real Muse call, where Muse writes the reply and Live/TTS only speaks it, is still a separate later step and is NOT what section 4 does.
Fixed 2026-10-31: Live now uses the v1beta endpoint (not v1alpha), systemInstruction at setup level (not inside generationConfig), and the full server error / close reason is shown, not truncated. Mic fix: the mic is requested immediately on the Start click (a real tap), so Brave shows the permission prompt right away, with mic status and a level bar below — audio is NOT sent to Live until setupComplete arrives. If Live still stops, the status line and full log below will show exactly where it stopped: mic, connecting, WebSocket open, setup sent, setupComplete, listening, error, or closed.
Mic status: not requested yet — tap Start Live to request the mic
Mic level: —
Level moves when you speak, even before Live streaming starts. If it stays at 0, the mic is not live.
Live status: waiting for a key. No Live session has been opened from this page.
Live heard (input transcription): —
Live said (output transcription): —
Live log: waiting for a key. No Live session has been opened from this page.
Live endpoint used by the browser: wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent — the endpoint in Google's Live API WebSockets reference for BidiGenerateContent. Model gemini-3.8-live. Audio is 16 kHz PCM in, 24 kHz PCM out, handled in your browser only. No audio is sent to Cloudflare Pages. No key is logged here.