Gemini 3.5 Transcribe — не ещё одно имя для универсальной Gemini 3.5 Flash. Это отдельная модель распознавания речи с двумя техническими контрактами. Записанный файл отправляется в gemini-3.5-transcribe через Files API и Interactions API. Непрерывный поток для субтитров отправляется в gemini-3.5-transcribe-live через Live API.
Если перепутать маршруты, проблема не ограничится задержкой. Изменятся формат входа, события ответа, допустимая длительность и доступность разделения спикеров и временных меток. Обе модели находятся в public preview, поэтому перед выпуском стоит сверяться с актуальной карточкой Gemini 3.5 Transcribe.
Два model ID решают разные задачи
gemini-3.5-transcribe подходит для интервью, звонка, лекции, подкаста или встречи, которые уже записаны. Один запрос принимает до часа аудио. Если включить diarization или word-level timestamps, предел снижается до 30 минут. Именно этот маршрут возвращает структуру по словам и спикерам.
gemini-3.5-transcribe-live нужен, когда текст должен появляться во время речи. Сессия ограничена десятью минутами, а diarization и word timestamps не поддерживаются. Для длинного эфира приложение обязано заранее уметь обновлять соединение и не дублировать финальные фрагменты.
Оба варианта умеют автоматически распознавать более 85 языков, переключаться между ними, учитывать пользовательский словарь и делать smart transcription. Русский язык указан как ru-RU.

Эти модели возвращают текст. Они не заменяют разговорного голосового агента, перевод речи в речь или модель, которая отвечает на вопросы об аудиозаписи. Если после расшифровки нужны резюме, извлечение сущностей или tool calls, сохраните проверенный transcript и передайте его следующему этапу.
Сначала докажите, что работает простой файл
Текущая официальная инструкция по audio transcription сначала загружает файл, затем передаёт его URI в Interactions API. Для Python нужен актуальный Google Gen AI SDK:
bashpython -m pip install -U google-genai export GEMINI_API_KEY="YOUR_API_KEY"
Минимальный запрос выглядит так:
pythonfrom google import genai client = genai.Client() audio_file = client.files.upload(file="sample.mp3") interaction = client.interactions.create( model="gemini-3.5-transcribe", input=[ { "type": "audio", "uri": audio_file.uri, "mime_type": audio_file.mime_type, } ], ) print(interaction.output_text)
На первом запуске проверяйте не «идеальность», а четыре наблюдаемых условия: upload завершился; interaction не упал; output_text непустой; текст соответствует именно отправленному файлу. Запишите model ID, длительность, MIME type, статус и пустой/непустой результат. После этого добавляйте по одной функции — иначе невозможно понять, сломался транспорт, формат аудио или сочетание параметров.
Язык можно не указывать: пустой language_codes включает автоопределение и code-switching. Для преимущественно русской записи допустима подсказка ru-RU. custom_vocabulary принимает до 1 000 терминов, но Google пишет, что обычно лучшие результаты получаются при списке до 100. Начните с фамилий, названий продуктов, сокращений и идентификаторов, ошибка в которых действительно дорога.
smart нельзя совместить с аудиторским transcript
Режим verbatim сохраняет повторы, слова-паразиты и самоисправления. Он нужен для контроля качества, точной привязки к записи и любых сценариев, где важна проверяемость.
smart удаляет заполнители пауз, исправляет оговорки и форматирует числа, даты и списки. Результат легче читать, но smart mode несовместим с diarization и word-level timestamps. Если одновременно нужны чистый текст и доказуемая привязка, сначала сохраните verbatim с annotations, а очистку делайте отдельным контролируемым шагом.
pythoninteraction = client.interactions.create( model="gemini-3.5-transcribe", input=[ { "type": "audio", "uri": audio_file.uri, "mime_type": audio_file.mime_type, } ], generation_config={ "transcription_config": { "custom_vocabulary": ["Gemini", "BigQuery"], "mode": { "type": "verbatim", "diarization_mode": "speaker", "timestamp_granularities": ["word"], }, } }, )
Объединённый текст остаётся в interaction.output_text, но данные по словам и спикерам находятся в content annotations. Если продукт строит SRT, переход к месту записи, отчёт по участникам или доказуемую цитату, одного output_text недостаточно.
Текущая спецификация допускает до восьми спикеров, однако attribution для трёх и более помечен как experimental. Включение word timestamps также может снизить точность. Поэтому многосторонний звонок — отдельный тестовый класс, а не гарантированная возможность.
Live API требует правильных байтов и состояния UI
Live-маршрут принимает raw 16-bit PCM, 16 kHz, mono, little-endian, рекомендуемыми фрагментами по 100 ms. Поток WebM/Opus из браузера или 8 kHz μ-law из телефонии нужно декодировать и ресемплировать; строка audio/pcm;rate=16000 сама по себе не преобразует данные.
Базовое соединение и приём событий можно организовать так:
pythonimport asyncio from google import genai from google.genai import types client = genai.Client() config = types.LiveConnectConfig( response_modalities=["TEXT"], input_audio_transcription=types.AudioTranscriptionConfig( language_codes=["ru-RU"], ), ) async def receive(session): async for response in session.receive(): content = response.server_content if content and content.interim_input_transcription: replace_preview(content.interim_input_transcription.text) if content and content.input_transcription: append_final(content.input_transcription.text) async def main(): async with client.aio.live.connect( model="gemini-3.5-transcribe-live", config=config, ) as session: receiver = asyncio.create_task(receive(session)) async for chunk in your_pcm_source(): await session.send_realtime_input( audio=types.Blob( data=chunk, mime_type="audio/pcm;rate=16000", ) ) await session.send_realtime_input(audio_stream_end=True) await receiver asyncio.run(main())
replace_preview, append_final и your_pcm_source — функции приложения, а не SDK. interim_input_transcription быстро меняется и должен заменять текущий preview. input_transcription — финальный сегмент, который можно добавлять в сохранённый transcript. Если сохранять каждую interim-гипотезу, появятся повторы и уже исправленные слова.
В браузере или мобильном приложении нельзя вшивать постоянный API key. В руководстве Live transcription предусмотрены ограниченные ephemeral tokens, которые выдаёт доверенный сервер. Кроме этого, production-клиенту нужны reconnect, продление сессии, дедупликация и метрики задержки до partial/final.
Цена дешёвая только внутри узкой строки API
На 27 августа 2026 года страница цен Gemini Developer API оценивает записанную транскрипцию примерно в $0.003/min входа и $0.002/min выхода — около $0.005/min суммарно. Для Live указано около $0.005/min входа и $0.004/min выхода — около $0.009/min. Фактический счёт зависит от токенов.
Сто часов дают ориентир $30 для файлов или $54 для Live. Здесь нет хранения, перекодирования, медиа-сервера, повторов, последующего резюме и ручной проверки. Бесплатный tier сейчас отмечен как используемый для улучшения продуктов Google, платный — как не используемый. Это критично для звонков клиентов, внутренних встреч и других чувствительных записей. Отдельно проверяйте доступность аккаунта, оплаты и региона; публичная цена не обещает одинаковый доступ всем.
Проверяйте не средний WER, а свои дорогие ошибки

Google со ссылкой на Artificial Analysis сообщает средний WER 4,0% для streaming и 2,6% для non-streaming, а также ускорение финальной транскрипции по сравнению с Chirp 3. Это основание запустить тест, но не гарантия для русского акцента, конкретного микрофона или отраслевой лексики.
Соберите 20–50 размеченных фрагментов: тишина и шум, дальний микрофон, телефонный codec, быстрая речь, переключение русского и английского, пересечение голосов. Отдельно считайте ошибки в фамилиях, суммах, датах, адресах, артикулах и обязательствах. Для Live измеряйте churn interim-текста, повторы final, восстановление после disconnect и задержку. Для записей проверяйте speaker attribution и точность перехода по timestamp.
Остановите интеграцию, если обязательны live-диаризация, live word timestamps, сессия длиннее десяти минут без переподключения или один вызов, который одновременно транскрибирует, рассуждает и вызывает инструменты. В остальных случаях безопасный порядок таков: короткий нечувствительный файл, затем ровно нужные annotations, затем независимый Live-прототип и только после этого собственный gold set, расчёт полной стоимости и решение о production.



