Все статьи
Статья
7 августа 2026 г.6 мин

Голос и аудио: сценарии с речевыми моделями

Транскрипция звонков, голосовые боты, разбор совещаний. Voxtral и Gemini на аудио: как подать файл, обработать длинные записи и не потерять смысл.

Сергей Панов


Голос и аудио: сценарии с речевыми моделями

Речевые модели закрывают три частых сценария: транскрипция (звонки, совещания в текст), понимание аудио (сразу вытащить решения и задачи из записи) и голосовые боты (речь на входе и выходе). Под каждый — свой подход.

Транскрипция

Базовый сценарий — превратить запись в текст. Подаёте файл, получаете расшифровку:

with open("call.mp3", "rb") as f:
tr = client.audio.transcriptions.create(
model="voxtral", file=f, language="ru",
)
print(tr.text)

Voxtral хорошо держит русский и разговорную речь с шумом и перебивками. Указывайте language="ru" явно — автоопределение иногда ошибается на коротких или многоязычных фрагментах.

Понимание, а не только расшифровка

Мультимодальные модели вроде Gemini принимают аудио напрямую и сразу отвечают на вопросы по нему — не нужен промежуточный текст. Это удобно для «вытащи из звонка договорённости и дедлайны»:

resp = client.chat.completions.create(
model="gemini-pro",
messages=[{"role": "user", "content": [
{"type": "text", "text":
"Это запись созвона. Выпиши принятые решения и задачи с ответственными."},
{"type": "input_audio", "input_audio": {
"data": b64_audio, "format": "mp3"}},
]}],
)

Длинные записи

Часовое совещание не влезет в один запрос и по контексту, и по лимитам. Стратегия:

  1. Транскрибируйте целиком через Voxtral (транскрипция масштабируется по длине).
  2. Полученный текст режьте на куски и суммаризируйте по частям.
  3. Собирайте частичные саммари в итоговое.

Для диаризации (кто что сказал) просите модель размечать реплики по говорящим, если запись это позволяет, — но точность разметки на пересекающейся речи падает, закладывайте проверку.

Голосовые боты

Полный цикл: речь → текст (Voxtral) → LLM обрабатывает → текст → речь (TTS). Узкое место — задержка: пользователь в телефонном разговоре не терпит пауз. Поэтому:

  • На LLM-шаге ставьте Flash-модель и стриминг.
  • Начинайте синтез речи, не дожидаясь конца генерации текста, — по предложениям.
  • Держите реплики короткими: длинный ответ бота в голосе раздражает сильнее, чем в чате.

Грабли

  • Термины и имена. Модель пишет «Yenisei» как «Енисей» или «Енисеи». Подавайте подсказку со списком имён/терминов в промпте, если API поддерживает, либо чистите постобработкой.
  • Формат и битрейт. Слишком сжатый звук роняет точность. mp3/wav в нормальном качестве — ок, телефонный 8kHz распознаётся хуже.
  • Тишина и шум. Длинные паузы и фоновый гул модель иногда «дорисовывает» словами. На важных расшифровках проверяйте подозрительно гладкие куски.
  • Стоимость по длительности. Аудио считается по минутам/токенам записи, а не по словам. Часовые звонки набегают — считайте на реальной выборке.

Начните с транскрипции одного типа звонков, оцените точность на русском вручную по десятку записей, и только потом достраивайте понимание и голосовой цикл.