Building a Real-Time Audio Translator with Gemini Live API

від

у

Створення перекладача голосу в реальному часі за допомогою Gemini Live API

https://ift.tt/iRD8GXc

Публікація описує, як Real‑Time перекладач голосу працює з Gemini Live API. Реальний переклад довго був проблемою в штучному інтелекті: традиційні підходи потребують окремих конвейерів speech-to-text, перекладу та text-to-speech, що додає затримки й можливі помилки. З Gemini Live API ми можемо побудувати безшовний, з малими затримками досвід перекладу, що обробляє аудіо безпосередньо.

У цій публікації я розповім про Live Translator — відкритий додаток, що перекладає мову в реальному часі на 97 мов. Розглянемо, як ним користуватися, зануримося в архітектуру та обговоримо інженерні виклики підтримки безперервних сеансів. Цікаві аспекти: як ми обробляємо закінчення сеансів, щоб досягти безшовного перекладу тривалістю години без пауз, та як ми кількісно вимірюємо якість перекладу та UX за допомогою автоматизованих soak-тестів, що тривають годинами і оцінюють кожне висловлювання.

Що таке Live Translator?

Live Translator — веб-додаток, що захоплює ваш голос, надсилає його до Gemini Live API та відтворює переклад у реальному часі. Досвід нагадує синхронного перекладача: ви говорите — через кілька секунд чуєте переклад.

Ключові можливості

– 97 підтримуваних мов: від африкаанс до зулу, охоплює основні світові та багато регіональних мов
– Два режими введення: постійний безперервний переклад або режим Push-to-Talk для контрольованого вводу
– Власний глосарій: фіксуєте конкретні терміни як незмінні переклади — важливо для технічної термінології, власних назв чи назв брендів
– Живе розпізнавання тексту: бачите одночасно, що було почуто, і що перекладено як текстові спливаючі вікна
– Браузерна основа: не потрібно встановлення; працює у будь‑якому сучасному браузері з доступом до мікрофона

Базове використання

1. Відкрийте застосунок і виберіть мови джерела та цілі на нижній панелі
2. Натисніть Пуск для початку безперервного перекладу
3. Говоріть у мікрофон — переклади з’являються як текст і програються як аудіо

Для більшої контролю використовуйте режим Push to Talk. Тримайте кнопку (або пробіл) для передачі, відпустіть — щоб зупинити. Це корисно в галасливих середовищах або коли потрібен точний контроль над тим, що перекладається.

Функція Глосарію

Технічні презентації часто містять терміни, з якими загальні моделі перекладу мають проблеми. Функція глосарію вирішує це, дозволяючи визначати точні переклади для конкретних термінів.

Завантажте CSV-файл з колонками source, target, transcription:

Kubernetes, クバネティス, Kubernetes
Cloud Run, クラウドラン, Cloud Run
Vertex AI, バーテックスエーアイ, Vertex AI

Третя колонка є необов’язковою — це відображення для дисплею. Модель вимовляє цю цільову форму (фонетична японська), але на екрані відображається транскрипція латиницею. Так ви маєте фонетично коректне аудіо, але читабельний текст на екрані.

Архітектура: глибинне занурення

Що таке Gemini Live API?

Gemini Live API дозволяє низьколатентний двосторонній потік даних з моделями Gemini через WebSockets. На відміну від традиційних стеків штучного інтелекту для мови, які ланцюжком поєднують окремі компоненти speech-to-text, language model та text-to-speech, Live API оброблює аудіо взагалі в одному моделі — вхід аудіо, вихід аудіо.

Live Translator використовує gemini-3.1-flash-live-preview, найновішу аудіо-до-аудіо модель, оптимізовану для реального часу діалогу. Основні можливості, що роблять її ідеальною для перекладу:

– Рідне розуміння аудіо: модель обробляє мову безпосередньо, зберігаючи акустичні нюанси, такі як висота тону, темп та наголос
– Менше ніж секунда затримки: відповіді починають стрімити одразу
– Понад 90 мов: широке багатомовне покриття з сильним міжмовним переносом
– Підтримка перебивань: користувач може перервати мовлення; модель зупиняється й обробляє новий ввід негайно
– Вбудована транскрипція: як вхідне, так і вихідне аудіо можуть бути автоматично транскрибовані — окремий ASR не потрібен

Модель обробляє весь конвеєр перекладу — слухає, розуміє, перекладає та говорить — у одному прямому проході. Це дозволяє мати перекладач високої якості у продакшн‑середовищі за допомогою короткої системної інструкції.

Система Архітектура

Додаток має тривіальну архітектуру з трьома основними компонентами:

– Р Layer браузера: фронтенд захоплює аудіо з мікрофона за допомогою Web Audio API, переспівлює його до 16 кГц моно PCM (формат, якого очікує Gemini Live API) і передає через WebSocket
– Сервер FastAPI: сервіс посередник між браузерним WebSocket та Gemini Live API. Роль: захист API‑ключа, управління сесіями (уключаючи повторне з’єднання на expiry) та впровадження глосарію на серверній стороні
– Режим реального часу з двома задачами: передача аудіо вгору та передача відповідей вниз

Стратегія попереднього відкриття сесій

Gemini Live API сесії зазвичай закінчуються приблизно через 15 хвилин. Якщо сесія закінчується, сервіс надсилає повідомлення GoAway з відліком часу (зазвичай 30 секунд). Проста реалізація повторно під’єднується після закінчення, але це створює перерви перекладу під час вікна повторного з’єднання.

Live Translator вирішує це з попереднім відкриттям: наперед відкладається потенційна наступна сесія, щоб вона була готова, коли поточна закінчиться. Коли надходить повідомлення GoAway, ми відразу починаємо відкривати наступну сесію у фоновому режимі, продовжуючи водночас обробляти дані з поточної.

Чому не використовується відновлення сесії?

API підтримує відновлення сесій (carry context з попередньої сесії), але було виявлено нюанс: іноді модель додавала переклад попереднього висловлювання до поточного, що створювало ланцюгову помилку. Відсутність відновлення забезпечує більш надійну роботу: 98% пропусків у тестах на покриванні проти ~65% із відновленням за годину. Проте є ризик, що GoAway може загубити переклад під час висловлювання — близько 1–2% випадків у довгих сесіях, але загалом це прийнятна частка заради надійності.

Оцінювання: soak-тест

Як вимірювати якість системи реального часу перекладу? Індивідуальні тести недостатні — потрібне тривале навантаження, щоб виявити проблеми управління сесіями, витоки пам’яті та якість, що зменшується з часом.

Метод тестування

Soak-тест (tests/test_long.py) працює протягом тривалого часу (за замовчуванням 1 година) і вимірює:

– Якість перекладу: семантична правильність оцінюється LLM‑суддею від 1 до 10
– Затримка: час від кінця мовлення до першої відповіді та до повного перекладу
– Сумісність з глосарієм: чи правильно перекладаються позначені терміни
– Точність транскрипції: як добре входящі та вихідні транскрипції відповідають очікуваним текстам
– Стабільність сесії: рівень помилок та поведінка із повторним з’єднанням

Потік тестування

– Генеруємо випадкові англійські речення за допомогою Gemini Flash Lite
– Перетворюємо у аудіо за допомогою Google Cloud TTS
– Передаємо через WebSocket перекладача
– Транскрибуємо повернуте аудіо за допомогою Google Cloud STT
– Оцінюємо семантичну точність за допомогою LLM‑судді

LLM як суддя

Кожний переклад оцінює Gemini Flash Lite, який виступає evaluator. Суддя отримує вихідне речення та переклад, після чого повертає структурований вердикт:

SCORE: <число>
PASS: <так/ні>
REASON: <одне речення>

Структурований формат SCORE/PASS/REASON дозволяє надійно парсити відповідь, водночас надаючи модельці можливість пояснити свої міркування. Використання маленької швидкої моделі (Flash Lite) знижує вартість оцінювання.

Вимірювання затримки

Затримка вимірюється від моменту завершення мовлення (останній PCM‑чанк надіслано) до двох орієнтирів: першої відповіді та повного перекладу.

Перший показник відповіді (first_resp_sec) фіксує відчутну реактивність системи, коли користувач чує щось першочергово. Turn_complete_sec вимірює загальний час доставки, включно з відтворенням повного аудіо.

Останні результати (1 година, з англійської на японську, Cloud Run)

Duration: 3633s | Iterations: 198 | Passed: 198/198 (100.0%) | Avg score: 9.9/10 | Errors: 0

Регістр чисельних показників включає такі висновки:
– 99.5% перекладів оцінено на 9–10 з 10
– Перший відповідь приходить менш ніж за 100 мс для 91% висловлювань
– Повні переклади зазвичай завершує за 5–7 секунд
– 100% дотримання глосарію в 66 ітераціях, пов’язаних з глосарієм
– Жодних помилок протягом повної години

Відомі проблеми:
– Точність вихідної транскрипції нижча за якість перекладу — 88.4% оцінено 9–10, іноді бувають промахи (1% у діапазоні 0–2). Переклад аудіо коректний, але транскрипція аудіо з боку API іноді відрізняється. Це поточний обмеження можливостей транскрипційної складової моделі.
– GoAway під час висловлювання може призвести до втрати перекладу — якщо сесія закінчиться під час говоріння користувача, цей вислів може загубитися (~1–2% у довгих сесіях). Наступний вислів перекладається нормально.

Висновок

Створення реального часу перекладача за допомогою Gemini Live API знімає складність агрегації окремих систем STT, перекладу та TTS. Прямий аудіо‑до‑аудіо підхід зменшує затримку та зберігає нюанси, такі як тон та наголос, яких позначень текстових конвеєрів втрачають.

Головні інженерні виклики — управління сесіями. Попереднє відкриттяGoAway та рішення щодо відсутності відновлення сесії базувалися на широких тестах, а soak‑тестова рамка була критичною для виявлення проблем, які з’являються лише за тривалого навантаження.

Якщо ви будуєте realtime аудіо застосунки з Gemini Live API, розгляньте:

– Попереднє відкриття сесій до закінчення GoAway, щоб уникнути пауз
– Тестуйте відновлення обережно — чисте стартування може бути надійнішим, якщо історія сесії не потрібна
– Створюйте всебічні soak‑тести, що тривають години
– Використовуйте власні глосарії для термінології вашої галузі

Як розпочати

– Live Translator source code — клонувати, розгорнути та налаштувати
– Gemini Live API documentation — двосторонній аудіопотік з моделями Gemini
– Google GenAI SDK — бібліотеки Python та Node.js для Gemini API
– Gemini API quickstart — отримаєте API‑ключ і зробите перший запит
– Cloud Run — розгортання контейнеризованих застосунків з керованою інфраструктурою
– Cloud Text‑to‑Speech — конвертація тексту у природно звучну мову
– Cloud Speech‑to‑Text — транскрипція аудіо в текст

Джерело: Building a Real-Time Audio Translator with Gemini Live API

Прочитати спочатку: Google Cloud – Community на Medium (публікація була опублікована там як частина обговорення).

May 18, 2026 at 07:46AM


Коментарі

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *