Whisper large-v3 от OpenAI: как установить и расшифровать аудио

В этой статье

Если у вас есть запись разговора, лекции или интервью, Whisper large-v3 можно запустить на своём компьютере и получить текст без отправки файла в облачный endpoint. Это не «режим ChatGPT», а локальная модель распознавания речи из семейства Whisper. Large-v3 вышла в ноябре 2023 года; её описание и ограничения собраны в карточке модели Whisper.

Сценарий выглядит просто: установить пакет, поставить ffmpeg, скачать веса модели при первом запуске и передать ей аудиофайл. Но между «файл распознан» и «текстом можно пользоваться» есть небольшая разница. Шум, дикция, темп речи и оборудование влияют и на качество, и на скорость, поэтому результат стоит проверить на собственной записи.

Что именно устанавливается

Официальный Python-пакет называется openai-whisper. Модель выбирается отдельно — в нашем случае по имени large-v3. В версии пакета 20231106 и новее это имя доступно напрямую; имя large используется как алиас для последней большой версии, то есть для large-v3. История выпуска модели описана в обсуждении large-v3.

Для чтения и преобразования аудиофайлов нужен системный ffmpeg. Поэтому перед первым запуском установите его привычным для вашей ОС способом, а затем проверьте, что команда доступна в терминале:

ffmpeg -version

Сам Python-пакет можно установить так:

python -m pip install -U openai-whisper

Если в системе несколько версий Python, запускайте скрипт тем же интерпретатором. Актуальные команды и требования к установке приведены в README официального репозитория Whisper.

Расшифровка из командной строки

Положим, исходная запись называется interview.mp3 и находится в текущей папке. Для русской речи команда будет такой:

whisper interview.mp3 --model large-v3 --language Russian

Whisper прочитает файл и сохранит результаты в выходных форматах, поддерживаемых CLI, включая текстовый. Ключевой здесь параметр — --model large-v3: он выбирает локальные веса Whisper и не обращается к OpenAI API. При первом запуске модель потребуется скачать, поэтому заранее оставьте достаточно места на диске и дождитесь окончания загрузки.

Если язык заранее неизвестен, параметр можно не указывать — модель попробует определить его самостоятельно. Для записи, о которой вы точно знаете, что она на русском, явное --language Russian убирает одну лишнюю неопределённость. Это особенно удобно, когда в файле короткая реплика или много фонового шума.

Можно начать с небольшой проверки на одном фрагменте записи, а затем запускать полный файл. Так быстрее понять, устраивает ли вас скорость и качество именно на вашем компьютере: для большой модели в README указано около 10 GB VRAM, но реальная возможность запуска зависит от реализации и оборудования, а скорость меняется из-за языка, шума и темпа речи. Не стоит воспринимать эту цифру как универсальное требование для любой сборки Whisper.

То же самое через Python

Когда расшифровку нужно встроить в собственный скрипт, используется Python API:

import whisper

model = whisper.load_model("large-v3")
result = model.transcribe("interview.mp3", language="ru")

print(result["text"])

Здесь whisper.load_model("large-v3") загружает локальную модель, а transcribe обрабатывает файл. Итоговый текст находится в result["text"]; его можно записать в Markdown, базу данных или передать следующему этапу обработки.

Минимальный вариант с сохранением текста в файл выглядит так:

from pathlib import Path
import whisper

model = whisper.load_model("large-v3")
result = model.transcribe("interview.mp3", language="ru")

Path("interview.txt").write_text(result["text"], encoding="utf-8")

Это пример последовательности вызовов, а не результат фактического теста на конкретной машине. Первый запуск может занять заметное время из-за загрузки весов, а последующие — из-за вычислений на выбранном устройстве.

Как проверить, что результат пригоден

Проверка нужна не только для поиска опечаток. Прослушайте несколько мест с именами, числами, адресами и терминами — именно там распознавание чаще всего меняет смысл. Сравните короткий фрагмент аудио с текстом и отдельно посмотрите, не перепутан ли язык. Если запись длинная, проверьте начало, середину и конец: качество может меняться вместе с расстоянием до микрофона и уровнем шума.

Удобная проверка — сохранить рядом исходный interview.mp3 и полученный interview.txt, затем вручную отметить сомнительные места. Не исправляйте всё автоматически по одному подозрительному слову: иногда «странная» расшифровка точно передаёт неразборчивую реплику, а иногда требует прослушивания контекста.

Large-v3 — это не whisper-1

Названия легко смешать: Whisper large-v3 запускается локально из репозитория Whisper, а облачная расшифровка через OpenAI API использует отдельный маршрут и каталог моделей. Поэтому команда с whisper.load_model("large-v3") не является вызовом whisper-1, не требует API-ключа и не расходует API-кредиты. Если вам нужен именно локальный файл и контроль над запуском, следуйте инструкции выше; если локальная установка не подходит, можно отдельно рассмотреть облачный сценарий расшифровки готового файла через OpenAI API.

Два маршрута для одной задачи

После пробного запуска обычно становится ясно, чего вы хотите дальше. Самостоятельный запуск подходит, если важны локальная обработка, повторяемость и возможность встроить модель в свой скрипт. При этом вам придётся самостоятельно поддерживать окружение, ffmpeg, веса модели и вычислительные ресурсы.

Если нужна готовая услуга без локальной установки модели, загляните в каталог AI-сервисов Amber Market. Это общий каталог, а не скачивание Whisper large-v3 и не пополнение OpenAI API: наличие конкретного предложения, условия и итоговую сумму нужно проверить в его карточке. Для покупателя из России заказ оформляется через посредника, а доступный способ оплаты и условия получения показываются на странице заказа.

В итоге для локальной расшифровки достаточно связки openai-whisper + ffmpeg, имени модели large-v3 и явного языка для известной записи. А пригодность результата лучше оценивать не по одному красивому запуску, а по нескольким реальным фрагментам вашей записи.

Источники

Есть следующая задача?Ещё по теме «Голосовой режим» →