Блог · 5 минут чтения
Как распознать русскую речь в текст через API: пошаговое руководство
Распознавание речи (speech-to-text, STT) превращает аудио в структурированный текст: слова, таймкоды и спикеры. В этом гайде — полный путь от регистрации до рабочего Python-скрипта.
Зачем нужна транскрибация
Ручная расшифровка медленная и дорогая: час аудио занимает 3–5 часов работы человека. STT-API справляется за минуты и сразу отдаёт таймкоды — привязку каждого слова к секунде в записи.
Типичные сценарии: расшифровка звонков колл-центра, субтитры к видео, протоколы интервью и подкастов, проверка произношения в EdTech. Для русского языка важны точность и поддержка отраслевых терминов.
Как выбрать API
На что смотреть: точность (метрика WER — доля ошибочных слов), цена за минуту, поддержка русского, наличие таймкодов и диаризации, задержка ответа.
VoiceKit закрывает эти пункты: русский из коробки, слово-уровневые таймкоды, диаризация и потоковая транскрибация по WebSocket. Детали и цены — смотрите тарифы.
Получение API-ключа
Зарегистрируйтесь в кабинете — ключ создаётся автоматически. Бесплатный тариф включает 30 минут транскрибации в месяц. Передавайте ключ в заголовке X-Api-Key каждого запроса.
Код на Python
Установите SDK одной командой — либо отправляйте обычные HTTP-запросы. Самый быстрый вариант — синхронный метод:
pip install ttsapi-client
from ttsapi import RussianTtsClient
client = RussianTtsClient(api_key="rtt_…")
transcript = client.transcribe_sync("meeting.mp3")
print(transcript["transcript"])
for segment in transcript["segments"]:
print(segment["start"], segment["end"], segment["text"])
Для длинных файлов используйте асинхронный режим: загрузите файл, получите job_id и опрашивайте статус, пока он не станет completed или failed:
job = client.transcribe("meeting.mp3", language="ru", diarization=True, keyterms=["диагноз"])
result = client.get_transcription_job(job["job_id"])
while result["status"] not in ("completed", "failed"):
result = client.get_transcription_job(job["job_id"])
print(result["transcript"])
Обработка ошибок и форматы вывода
Ответ содержит transcript, segments со слово-уровневыми таймкодами words (word, start, end, confidence), а при включённой диаризации — speaker для каждого сегмента.
Ошибки: 401 — неверный ключ, 413 — слишком большой файл, 429 — превышен лимит тарифа. Для субтитров вызовите GET /v1/transcribe/{job_id}/subtitles?format=srt — получите готовый SRT. Полное описание — смотрите документацию.
Начните бесплатно
Бесплатный тариф включает 30 минут транскрибации в месяц — без привязки карты. Создайте ключ и распознайте первый файл за 5 минут.