docs: детали интеграции whisper.cpp + Vulkan

Модели (GGML формат), сборка, Python-биндинги, subprocess-подход.
Следующий шаг — прототип в WSL.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dmitriy Dementiev
2026-03-23 16:45:14 +03:00
co-authored by Claude Opus 4.6
parent 78cd8b42ad
commit 2a7d3605e7
+49 -3
View File
@@ -109,9 +109,55 @@ vulkan = ["pywhispercpp>=0.4"]
| AMD NPU (XDNA 1) | ⚠️ ограничен | частичное | высокая | средняя | | AMD NPU (XDNA 1) | ⚠️ ограничен | частичное | высокая | средняя |
| WinML (будущее) | ⏳ не готов | неизвестно | средняя | — | | WinML (будущее) | ⏳ не готов | неизвестно | средняя | — |
## Детали по whisper.cpp + Vulkan
### Модели (GGML .bin формат, НЕ GGUF)
Скачивать с https://huggingface.co/ggerganov/whisper.cpp/tree/main
| Модель | Файл | Размер |
|--------|------|--------|
| medium f16 | `ggml-medium.bin` | 1.53 ГБ |
| medium q8_0 | `ggml-medium-q8_0.bin` | 823 МБ |
| medium q5_0 | `ggml-medium-q5_0.bin` | 539 МБ |
| large-v3 f16 | `ggml-large-v3.bin` | 3.1 ГБ |
| large-v3 q5_0 | `ggml-large-v3-q5_0.bin` | 1.08 ГБ |
| large-v3-turbo f16 | `ggml-large-v3-turbo.bin` | 1.62 ГБ |
| large-v3-turbo q8_0 | `ggml-large-v3-turbo-q8_0.bin` | 874 МБ |
### Python-биндинги
**pywhispercpp** (v1.4.1) — pip wheel CPU-only. Для Vulkan нужна сборка из исходников:
```bash
GGML_VULKAN=1 pip install git+https://github.com/absadiki/pywhispercpp
```
Требует: VulkanSDK, cmake, C++ компилятор.
### Subprocess-подход (альтернатива)
whisper-cli принимает WAV 16kHz mono, выдаёт JSON с таймкодами:
```bash
whisper-cli -m ggml-medium.bin -f audio.wav -l ru -oj -of output
```
Для видео/mp3 нужна предварительная конвертация через ffmpeg (PyAV уже есть в зависимостях).
### Сборка whisper.cpp с Vulkan
```bash
# Linux/WSL
sudo apt install cmake build-essential libvulkan-dev
git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp
cmake -B build -DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j$(nproc)
# -> build/bin/whisper-cli
```
## Рекомендуемый план ## Рекомендуемый план
1. **Прототип** whisper.cpp + Vulkan бэкенда (pywhispercpp или subprocess) 1. **Прототип в WSL** — собрать whisper.cpp с Vulkan, прогнать тестовый файл
2. **Бенчмарк** на том же тестовом файле — сравнить скорость и качество GGUF vs CTranslate2 2. **Бенчмарк** на том же тестовом файле — сравнить скорость и качество GGML vs CTranslate2
3. **Решение** о включении в основной проект по результатам бенчмарка 3. **Решение** о включении в основной проект по результатам бенчмарка
4. NPU — отложить до XDNA 2 или до появления pip-пакета от AMD 4. Если ОК — оформить как бэкенд `backends/whisper_cpp.py`
5. NPU — отложить до XDNA 2 или до появления pip-пакета от AMD