Расшифровка аудио в текст больше не требует облачных сервисов: нейросеть Whisper делает это на обычном компьютере, без интернета и без отправки записи чужим серверам. Мы прогнали через Whisper одно и то же «голосовое сообщение» — в чистом виде и с шумом и сжатием, как в мессенджере, — на четырёх моделях разного размера. Ниже — как перевести аудио в текст локально, какую модель выбрать, как получить субтитры и где Whisper ошибается.

Что такое Whisper
Whisper — модель распознавания речи от OpenAI с открытыми весами: её можно скачать и запускать у себя бесплатно. Она понимает десятки языков, включая русский, сама расставляет знаки препинания и умеет выдавать текст с таймкодами — готовые субтитры.
Удобнее всего запускать Whisper через faster-whisper — это та же модель, переписанная для скорости: по данным разработчиков, до 4 раз быстрее оригинала при той же точности и с меньшим расходом памяти. Отдельно ставить FFmpeg для неё не нужно.
Наш тест: голосовое сообщение на четырёх моделях
Для теста мы синтезировали 20-секундную запись открытой моделью синтеза речи Piper — так у нас есть точный исходный текст для сравнения. Текст специально с подвохами: технические термины, число и номер телефона (номер выдуманный):
Привет! Это тестовое голосовое сообщение для проверки распознавания речи. Завтра в десять утра переносим сайт на новый сервер. Перед этим нужно сделать резервную копию базы данных, проверить DNS-записи домена и снизить TTL до трёхсот секунд. Если что-то пойдёт не так, звоните по номеру восемь девятьсот девяносто девять, сто двадцать три, сорок пять, шестьдесят семь.
Вторую версию мы испортили, как в реальном голосовом: добавили фоновый шум, обрезали частоты до «телефонных» и сжали в Opus с битрейтом 12 кбит/с — примерно так мессенджеры хранят голосовые. Запуск — на сервере без видеокарты, 4 ядра процессора, faster-whisper 1.2.1.
| Модель | Размер | Время на 20 с записи | Как справилась |
|---|---|---|---|
| tiny | 75 МБ | 3 с | плохо: «сайт на новой сергах», номер склеен в одно число |
| small | 464 МБ | 11 с | средне: «Новый Сергов», термины искажены |
| medium | 1,5 ГБ | 22–28 с | хорошо, но TTL стал «твиттером» |
| large-v3-turbo | 1,6 ГБ | 10–12 с | лучше всех и быстрее medium |
Результат large-v3-turbo на зашумлённом «голосовом»:
Привет! Это тестовое голосовое сообщение для проверки распознавания речи. Завтра в 10 утра переносим сайт на Новый Серго. Перед этим нужно сделать резервную копию базы данных, проверить длительные записи домена и снизить их летел до 300 секунд. Если что-то пойдет не так, звоните по номеру 8 999 123 45 67.
Обычная речь, время и номер телефона распознаны точно, цифры сразу записаны цифрами. Ошибки — в трёх местах, и все на терминах: «сервер» в шуме стал «Новым Серго», «DNS» — «длительными», «TTL» — «их летел». На чистой записи та же модель написала «новый сервер» правильно. Учтите, что наша запись синтезирована: аббревиатуры синтезатор произносит неидеально, и часть ошибок — на его совести. Но вывод от этого не меняется: термины и имена собственные — слабое место любой распознавалки.
Как исправить термины: подсказка
У Whisper есть параметр initial_prompt — текст-подсказка, который модель учитывает как «начало разговора». Если передать в него ожидаемые слова, модель охотнее их использует. С подсказкой «Переезд сайта: сервер, DNS-записи, TTL.» large-v3-turbo на той же зашумлённой записи написала «снизить TTL до 300 секунд» правильно. «DNS» и «сервер» в шуме всё равно остались ошибочными — подсказка помогает, но не спасает плохую запись.
Как перевести голосовое и аудио в текст: установка и запуск
Нужен Python 3.9 или новее. Установка одной командой:
pip install faster-whisper
Скрипт, который мы запускали (сохраните как transcribe.py):
from faster_whisper import WhisperModel
model = WhisperModel("large-v3-turbo", device="cpu", compute_type="int8")
segments, info = model.transcribe(
"voice.ogg",
language="ru",
beam_size=5,
initial_prompt="Переезд сайта: сервер, DNS-записи, TTL.", # необязательно
)
print(" ".join(s.text.strip() for s in segments))При первом запуске модель скачается автоматически (около 1,6 ГБ), дальше всё работает без интернета. Понимает любые форматы: голосовые .ogg из мессенджеров, .mp3, .m4a, .wav, звук из видео. Параметр compute_type="int8" уменьшает расход памяти и ускоряет работу на процессоре почти без потери качества.
С видеокартой NVIDIA замените device="cpu" на device="cuda" и compute_type на "float16" — по документации faster-whisper, для этого нужны библиотеки cuBLAS и cuDNN от NVIDIA. Расшифровка ускорится в разы.
Субтитры SRT из аудио и видео
Каждый фрагмент в ответе Whisper содержит время начала и конца, поэтому субтитры получаются в несколько строк кода:
def ts(x):
h, m, s = int(x // 3600), int(x % 3600 // 60), x % 60
return f"{h:02}:{m:02}:{s:06.3f}".replace(".", ",")
segments, _ = model.transcribe("video.mp4", language="ru")
with open("video.srt", "w", encoding="utf-8") as f:
for i, s in enumerate(segments, 1):
f.write(f"{i}\n{ts(s.start)} --> {ts(s.end)}\n{s.text.strip()}\n\n")Начало файла, который получился у нас:
1 00:00:00,000 --> 00:00:04,400 Привет! Это тестовое голосовое сообщение для проверки распознавания речи. 2 00:00:04,640 --> 00:00:07,140 Завтра в 10 утра переносим сайт на Новый Серго.
Какую модель Whisper выбрать
- large-v3-turbo — выбор по умолчанию. По нашему тесту она и точнее, и быстрее medium; на обычном процессоре расшифровывает быстрее, чем длится запись.
- small — если памяти мало (слабый ноутбук, VPS с 2 ГБ): текст понятен, но термины и имена придётся править.
- tiny — только чтобы проверить, что всё установилось.
Для часовой записи на процессоре large-v3-turbo займёт, если пропорция нашего теста сохранится, около получаса. На сервере без видеокарты расшифровку удобно запускать в фоне — на VPS пригодится статья про swap и память.
Локально или онлайн
Онлайн-сервисы расшифровки удобнее для разовой задачи, но запись уходит на чужой сервер. Для совещаний, звонков с клиентами, голосовых с личными данными локальный Whisper надёжнее: файл не покидает компьютер. Тот же подход — локальная модель вместо облака — мы разбирали для распознавания текста с картинки и для текстовых нейросетей в Ollama.
И главное правило для любой расшифровки: вычитывайте термины, имена, суммы и адреса. Whisper пишет гладко и уверенно, поэтому ошибку вроде «Новый Серго» вместо «новый сервер» легко пропустить.
Источники: faster-whisper, модель Whisper large-v3-turbo, модели faster-whisper, голоса Piper (для тестовой записи). Тест: faster-whisper 1.2.1, процессор 4 ядра, без видеокарты. Проверено 29 сентября 2026 года.








