Гайд · TNWS AI

Как создать голосового ассистента через Gemini Live API и не раскрыть API-ключ

2 мин

Архитектура Gemini Live API: WebSocket, PCM 16 кГц, аудио 24 кГц, ephemeral tokens, прерывание речи и проверка задержки.

Для браузера и мобильного клиента подключайтесь к Live API по WebSocket с короткоживущим ephemeral token, выданным вашим backend. Постоянный Gemini API key в приложение не встраивается. Согласно спецификации на 11 сентября 2026 года, входное сырое аудио — 16-bit PCM, 16 кГц, little-endian; аудиовыход — PCM 24 кГц.

Рабочий пример

// Backend: выдаёт клиенту короткоживущий токен по официальному API.
// Клиент: открывает WSS и отправляет PCM16 16 kHz little-endian.

const ws = new WebSocket(LIVE_API_URL_WITH_EPHEMERAL_TOKEN);
ws.binaryType = "arraybuffer";

ws.onmessage = (event) => { // Разобрать тип события; PCM-чанки проигрывать как 24 kHz. };

// Не отправляйте MediaRecorder WebM как будто это raw PCM.


## Что означает каждая важная часть

- Live API поддерживает текст, аудио и изображения; непрерывное видео представляется кадрами JPEG с ограниченной частотой, указанной в документации.
- Barge-in позволяет пользователю перебить ассистента: клиент прекращает воспроизведение старого аудио и передаёт новую речь.
- Транскрипции входа и выхода полезны для субтитров и проверки, но требуют отдельной политики хранения.
- Server-to-server проще контролировать, client-to-server обычно уменьшает задержку; для прямого клиента Google рекомендует ephemeral tokens.

## Порядок внедрения

1. На backend аутентифицируйте пользователя и выдавайте ограниченный ephemeral token.
2. В клиенте захватите микрофон, приведите поток к mono PCM16 16 кГц и отправляйте небольшими чанками.
3. Разбирайте события WebSocket по типу; не смешивайте аудио, транскрипцию и tool calls.
4. При barge-in очищайте буфер ещё не проигранного ответа.
5. Добавьте таймаут тишины, явный индикатор записи и кнопку немедленного отключения микрофона.

## Как проверить результат

Измерьте четыре значения: время подключения, задержку до первого аудиочанка, число обрывов и время остановки звука после barge-in. Запишите тестовую фразу с числами и сравните входную транскрипцию с оригиналом. Проверьте, что постоянного ключа нет в исходниках и сетевых запросах клиента.

## Ограничения

Live API находится в Preview, поэтому модели и протокол могут меняться. Аудиоформат нельзя определять «на слух»: неверная частота приводит к ускоренному, замедленному или искажённому звуку. Для звонков и записи голоса учитывайте согласие пользователя и местное право.

## Чего не делать
  • Не отправляйте постоянный API key в браузер.
  • Не принимайте WebM/Opus за raw PCM.
  • Не записывайте разговор скрытно.

Частые вопросы

Можно ли использовать пример в production?

Как основу — да, но добавьте авторизацию, таймауты, обработку ошибок, лимиты и тесты из статьи.

Где проверять актуальное имя модели?

В официальном каталоге Gemini API и Google AI Studio непосредственно перед развёртыванием.

Нужно ли доверять ответу без проверки?

Нет. Формат проверяется кодом, а важные факты — источником или вашей базой данных.

Что делать при изменении API?

Зафиксировать версию SDK, прочитать release notes и прогнать сохранённый набор интеграционных тестов.

Официальный источник

Документация Google, проверена 11 сентября 2026 года: https://ai.google.dev/gemini-api/docs/live-api

Читайте также

Комментарии

Пока тихо. Скажите первое слово