Скачиваем Whisper.cpp
(https://github.com/ggerganov/whisper.cpp):
cd /tmp
brew install gh
(если эта команда дала ошибку, у вас не установлен https://brew.sh)
gh repo clone ggerganov/whisper.cpp
cd whisper.cpp
bash ./models/download-ggml-model.sh base
bash ./models/download-ggml-model.sh medium
make
Скачаем с Ютуба ролик в качестве примера для распознавания русской речи. Для этого берём короткий ролик Екатерины Шульман на пару минут, id = f0RCGMCphUM , и выцепляем из него аудиодорожку в формате WAV:
brew install yt-dlp ffmpeg
yt-dlp -x --audio-format wav -o test.wav -- f0RCGMCphUM
Конвертируем аудиофайл в формат 16 bit WAV:
ffmpeg -i test.wav -ar 16000 -ac 1 -c:a pcm_s16le test_16bit.wav
Запускаем распознавание полученного файла test_16bit.wav
(используем модель medium
, если охота - можно base
, она попроще, но качество распознавания на сложной речи будет хуже)
./main -f test_16bit.wav -l ru -m models/ggml-medium.bin
Оно задумывается и начинает выплёвывать:
main: processing 'test_16bit.wav' (1990600 samples, 124.4 sec), 4 threads, 1 processors, lang = ru, task = transcribe, timestamps = 1 ...
[00:00:00.000 --> 00:00:03.440] приправим нашу беседу, цитата Бродского.
[00:00:03.440 --> 00:00:05.440] Вот что он писал.
[00:00:05.440 --> 00:00:08.400] Вот смотрите, кот.
[00:00:08.400 --> 00:00:12.720] Коту совершенно наплевать, существует ли общество память
[00:00:12.720 --> 00:00:15.480] или отдел идеологии при ЦК.
[00:00:15.480 --> 00:00:19.160] Также, впрочем, ему безразличный президент США,
[00:00:19.160 --> 00:00:20.520] его наличие или отсутствие.
[00:00:20.520 --> 00:00:23.800] А чем я хуже этого кота?
[00:00:23.800 --> 00:00:28.120] Вот как вы думаете, если бы сделать так,