Speech to speech translation on your website. Runs unlimited duration with session resumption and context window compression. Audio in, translated audio out, plus live transcripts.
Works on any modern browser over HTTPS. No Meet extension needed.
Free tier: input and output $0 during preview. Session auto extends beyond 15 min via contextWindowCompression and survives 10 min WebSocket resets via sessionResumption. See console for SessionResumptionUpdate and GoAway handling.
Audio tokens accumulate at 25 tokens/sec. Without compression a session caps at 15 min. We enable slidingWindow compression so old history is evicted and the session runs unlimited. The WebSocket itself lives ~10 min, so we store the newHandle from SessionResumptionUpdate and reconnect with sessionResumption: { handle } when we get GoAway or a close. Handles stay valid 2 hours.
Tip: Use headphones to avoid feedback. For others in a Meet to hear the translation, route translated audio to a virtual mic (VB-Cable / Loopback) and select it as your mic in Meet.
Add this floating widget to any page of your site (teacher portal, lesson page, etc.):
<script src="/live-translate/live-translate-widget.js" data-target-lang="vi"></script>
<div id="live-translate-root"></div>
Widget reuses the same 60 min logic. Provide an ephemeral token endpoint for production so you do not ship your API key.