From 364c8db3541e2af6b8b66a3dbb542c03b4475641 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Wed, 18 Mar 2026 23:33:43 +0300 Subject: [PATCH] =?UTF-8?q?fix(transcriber):=20=D1=80=D0=B0=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D0=B7=D0=BD=D0=B0=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20cublas?= =?UTF-8?q?/cudnn=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=B8=20=D1=83?= =?UTF-8?q?=D1=82=D0=BE=D1=87=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=81=D0=B8=D0=B8=20CUDA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - cublas64_12.dll not found не распознавалась как CUDA-ошибка, fallback на CPU не срабатывал - Что: - _is_cuda_error теперь матчит cublas и cudnn в дополнение к cuda и out of memory - README: добавлен шаг GPU-ускорения в установку, зафиксирована CUDA 12 (ctranslate2 4.7) - Проверка: - uv run pytest (97 passed) Co-Authored-By: Claude Opus 4.6 --- README.md | 15 +++++++++++---- src/local_transcriber/transcriber.py | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 63e975c..20f9d1a 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,14 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie uv tool install git+https://github.com/dementev-dev/local-transcriber ``` -**3. Готово:** +**3. (Опционально) GPU-ускорение:** + +Если есть NVIDIA GPU — транскрипция будет в 5–10× быстрее. Требуется **CUDA 12** (ctranslate2 4.7 не совместим с CUDA 11 и 13). + +- **Windows**: `winget install -e --id Nvidia.CUDA --version 12.9` (от администратора), перезапустить терминал +- **Linux / WSL2**: работает из коробки (нужен только драйвер: `nvidia-smi`) + +**4. Готово:** ```bash transcribe meeting.mp4 @@ -103,7 +110,7 @@ transcribe *.mp4 --force | | Linux / WSL2 | macOS | Windows | |---|---|---|---| | CPU | ✅ | ✅ | ✅ | -| GPU (NVIDIA) | ✅ авто | — | ✅ (нужен CUDA toolkit) | +| GPU (NVIDIA) | ✅ авто | — | ✅ (нужен CUDA 12) |
Linux / WSL2 @@ -126,9 +133,9 @@ transcribe *.mp4 --force Windows - CPU работает из коробки -- Для GPU нужен CUDA toolkit: +- Для GPU нужен **CUDA 12** (ctranslate2 4.7 не совместим с CUDA 11 и 13): ``` - winget install -e --id Nvidia.CUDA + winget install -e --id Nvidia.CUDA --version 12.9 ``` > `winget install` требует запуска от имени администратора (elevated terminal). > `uv tool install` работает без админа (ставит в пользовательскую директорию). diff --git a/src/local_transcriber/transcriber.py b/src/local_transcriber/transcriber.py index 70b1636..8fd72ec 100644 --- a/src/local_transcriber/transcriber.py +++ b/src/local_transcriber/transcriber.py @@ -225,7 +225,7 @@ def _create_model(model_name: str, device: str, compute_type: str): def _is_cuda_error(exc: BaseException) -> bool: msg = str(exc).lower() - return "cuda" in msg or "out of memory" in msg + return any(k in msg for k in ("cuda", "cublas", "cudnn", "out of memory")) def _is_missing_socksio_error(exc: BaseException) -> bool: