# whisper.cpp: локальная транскрибация аудио без Python

Источник: https://modelium.tech/zhurnal/whisper-cpp/

whisper.cpp запускает модели Whisper из командной строки C/C++-проекта: для обычной транскрибации Python не нужен. Соберите CLI, загрузите готовый ggml-файл, преобразуйте свою запись в WAV и сравните сохранённый текст с эталоном. Для русского языка выбирайте многоязычную модель без суффикса .en; скорость и точность на вашем устройстве заранее не гарантированы.

**Документация проверена 3 октября 2026 года** по коммиту `60c0be6a` от 2 октября. Ниже приведён путь, сверенный с исходным кодом и документацией; Modelium не запускал whisper.cpp и не получил транскрипт. [s1](#src-s1) [s4](#src-s4)

## Когда выбирать whisper.cpp, а когда faster-whisper?

whisper.cpp — самостоятельный C/C++ runtime и командная строка для инференса моделей Whisper. Для базового пути достаточно готовых преобразованных весов ggml, сборки CMake и CLI: установка пакета Python не требуется. Это удобно для локальной обработки разрешённых аудиофайлов и встраивания библиотеки в собственный стек; запуск не означает, что запись не покинет устройство, если её отправляют другие компоненты конвейера. [s1](#src-s1) [s2](#src-s2)

Если нужен код на Python с сегментами и CTranslate2, это другой инструмент — [faster-whisper](/zhurnal/faster-whisper/); его зависимости, пути к моделям и показатели нельзя переносить на whisper.cpp. Если неизвестно, какую задачу решает сама модель и какой язык поддерживают веса, начните со [страницы Whisper](/zhurnal/whisper-modeli/). [s8](#src-s8) [s2](#src-s2)

## Что подготовить до сборки?

Возьмите Git, CMake и совместимый C/C++-компилятор для вашей ОС; код проекта документирует CPU-only, macOS с Metal, Windows MSVC/MinGW и отдельные GPU backend. Не обещайте работу конкретной видеокарты только по названию runtime: для CUDA или Vulkan нужна подходящая сборка и проверка конфигурации. Память и скорость для вашей модели и аудиофайла измеряются на вашей машине, а не выводятся из размера `.bin`. [s1](#src-s1)

Для Linux/macOS документированный путь: `git clone https://github.com/ggml-org/whisper.cpp.git`, затем `cd whisper.cpp`, `git checkout 60c0be6ac8fa71b1a2ae2dd938a31a34a508e774`, `sh ./models/download-ggml-model.sh base`, `cmake -B build`, `cmake --build build -j --config Release`. Скрипт скачивает готовый `models/ggml-base.bin` из внешнего источника: сначала потребуется сеть, а для офлайн-повтора сохраните этот файл и его происхождение. Самостоятельная конвертация PyTorch-весов для такого пути не нужна. Загрузчик ищет доступный инструмент скачивания (`wget2`, `curl` или `wget`). Команды сверены с закреплённым кодом, но здесь не исполнялись. [s1](#src-s1) [s2](#src-s2) [s5](#src-s5)

На Windows проект указывает MSVC и MinGW; есть отдельный `models\download-ggml-model.cmd base` и сборка `cmake --build build --config Release`. Размещение бинарника зависит от CMake-генератора (в Release-сборке обычно `build\bin\Release\whisper-cli.exe`), поэтому после сборки найдите фактический `whisper-cli.exe`, а не переносите Unix-путь как универсальный. Работа на Windows для этой статьи не проверялась. [s1](#src-s1) [s6](#src-s6)

Код whisper.cpp помечен MIT, но это **не** единое разрешение на любую запись, весовую конверсию и распространение результата: происхождение загруженного файла и право обработки аудио выясняйте отдельно. [s7](#src-s7) [s2](#src-s2)

## Как получить первый транскрипт и проверить русский язык?

Для первого контроля используйте приложенный `samples/jfk.wav` и многоязычную модель: из корня репозитория `./build/bin/whisper-cli -m models/ggml-base.bin -f samples/jfk.wav -l en`. Эта англоязычная проба проверяет сборку и чтение модели; она **не** доказывает качество на русской речи. В README проекта также приводится `base.en`, но `.en` — только английский вариант, не выбирайте его для русского файла. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3)

Подготовьте собственную **разрешённую** русскую запись. Безопасный по документированному примеру вход — монофонический 16 кГц, 16-битный PCM WAV: `ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav`. Далее: `./build/bin/whisper-cli -m models/ggml-base.bin -f output.wav -l ru -otxt -of transcript`. После завершения проверьте файл `transcript.txt`, запишите точное имя модели/сборки и сохраните исходную запись рядом с ручной разметкой для сравнения. Флаги `-osrt` и `-oj` доступны для субтитров и JSON, если нужен такой формат результата. Это **инструкция для читателя**, а не подтверждённый прогон Modelium. [s1](#src-s1) [s3](#src-s3) [s4](#src-s4)

В документации той же ревизии есть расхождение: корневой README просит 16-битный WAV, а справка CLI перечисляет FLAC/MP3/OGG/WAV; в README дополнительно описана опциональная сборка с FFmpeg. Не обещайте чтение MP3 во всех сборках: WAV-путь выше сводит неопределённость к документированному примеру. `-l auto` означает автоопределение языка, тогда как значение CLI по умолчанию — `en`; для контролируемой русской записи явно указывайте `-l ru`. Флаг `-tr` переводит **на английский**, не на произвольный язык. [s1](#src-s1) [s3](#src-s3) [s4](#src-s4)

## Как оценить результат и устранить типовые ошибки?

Не принимайте появившийся `.txt` за доказательство верного распознавания. Для своей записи вручную проверьте имена, числа, пропуски речи и границы сегментов; при повторе сохраняйте те же настройки, модель и исходный WAV. Если нужен разбор качества для бизнес-задачи, перейдите к [протоколу локального распознавания речи](/zhurnal/raspoznavanie-rechi-lokalno/). Это предлагаемый метод проверки, а не собственный benchmark Modelium. [s3](#src-s3)

Если программа не находит модель, проверьте путь `models/ggml-base.bin` и отличие `base` от `base.en`; скрипт скачивания печатает место сохранения. Если язык неверный, проверьте `.en` и явное `-l ru`. Если аудиофайл не читается, сначала преобразуйте его в WAV по документированному рецепту и повторите команду; не выдавайте неподдерживаемый формат входа за недостаток самой модели. Для разметки говорящих одной обычной транскрибации недостаточно: рассмотрите [отдельный материал по диаризации](/zhurnal/diarizaciya-zapisi-vstrechi/). [s2](#src-s2) [s3](#src-s3) [s5](#src-s5)

**Следующий шаг:** получите `transcript.txt` на разрешённом русском аудио и сверяйте его с эталоном, прежде чем переносить runtime в конвейер. На Modelium сборка, транскрипция и замеры памяти не выполнялись.

## Источники

1. [ggml-org/whisper.cpp — README, сборка, аудио и backends](https://github.com/ggml-org/whisper.cpp/blob/60c0be6ac8fa71b1a2ae2dd938a31a34a508e774/README.md) — получено 2026-10-03
2. [ggml-org/whisper.cpp — модели и языки](https://github.com/ggml-org/whisper.cpp/blob/60c0be6ac8fa71b1a2ae2dd938a31a34a508e774/models/README.md) — получено 2026-10-03
3. [ggml-org/whisper.cpp — README whisper-cli, аргументы](https://github.com/ggml-org/whisper.cpp/blob/60c0be6ac8fa71b1a2ae2dd938a31a34a508e774/examples/cli/README.md) — получено 2026-10-03
4. [ggml-org/whisper.cpp — исходный код CLI, обработка параметров](https://github.com/ggml-org/whisper.cpp/blob/60c0be6ac8fa71b1a2ae2dd938a31a34a508e774/examples/cli/cli.cpp) — получено 2026-10-03
5. [ggml-org/whisper.cpp — загрузчик ggml-моделей для Unix](https://github.com/ggml-org/whisper.cpp/blob/60c0be6ac8fa71b1a2ae2dd938a31a34a508e774/models/download-ggml-model.sh) — получено 2026-10-03
6. [ggml-org/whisper.cpp — загрузчик ggml-моделей для Windows](https://github.com/ggml-org/whisper.cpp/blob/60c0be6ac8fa71b1a2ae2dd938a31a34a508e774/models/download-ggml-model.cmd) — получено 2026-10-03
7. [ggml-org/whisper.cpp — MIT LICENSE](https://github.com/ggml-org/whisper.cpp/blob/60c0be6ac8fa71b1a2ae2dd938a31a34a508e774/LICENSE) — получено 2026-10-03
8. [SYSTRAN faster-whisper — отдельная Python/CTranslate2-реализация](https://github.com/SYSTRAN/faster-whisper/blob/7b99be5376b41cd481dfc52e8caa00a497c3294e/README.md) — получено 2026-10-03
