John + Jessica Call — Pages Test

TEST PROTOTYPE ONLY — NOT a live Muse call.

1. Proven voice examples (no key needed)

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:

2. Record your voice in this browser (no upload, no transcription here)

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.

3. Speak a typed reply with Gemini 3.8 Flash TTS (your key, your browser only)

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.

4. Try Gemini 3.8 Live from your browser (experimental, key required)

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.