Ошибки Whisper: CUDA, файлы результатов и повторяющийся текст
См. также — глоссарий
Начните с первого исключения и одного короткого локального файла. При ошибке скрипт возвращает ненулевой код завершения; он не пробует молча другую модель и не переключается с GPU на CPU. Пока ищете причину, сохраняйте исходник и готовые результаты.
Проверьте окружение
В активированном виртуальном окружении примера выполните:
python -m pip check
python -c "import ctranslate2; print(ctranslate2.get_supported_compute_types('cpu'))"
Для CUDA дополнительно проверьте:
nvidia-smi
python -c "import ctranslate2; print(ctranslate2.get_supported_compute_types('cuda'))"
Успешный nvidia-smi подтверждает видимость драйвера и устройства, но не загрузку совместимых cuBLAS/cuDNN из Python. Закреплённый стек CTranslate2 использует CUDA 12 и cuDNN 9. Следуйте инструкции установки библиотек либо используйте GPU Dockerfile на совместимом хосте. Настраивайте пути библиотек внутри выбранного окружения, а не заменяйте системные библиотеки вслепую.
Симптом и следующий шаг
| Симптом | Что проверить |
|---|---|
| Модель недоступна offline | Выполните --download-only с сетью и теми же --model, --cache; сохраните фиксированную ревизию |
| Нет библиотеки CUDA/cuDNN или compute type не поддерживается | Драйвер, версии библиотек и поддерживаемые типы вычислений; одной VRAM для совместимости недостаточно |
| Не хватает GPU-памяти | Уберите соседнюю GPU-нагрузку, проверьте меньшую модель или поддерживаемое квантование в новом выходном каталоге |
| Процесс убит без Python traceback | Лимиты RAM хоста/контейнера и системные OOM-логи; декодирование видео тоже использует RAM |
| Не найдены медиафайлы | Каталог без вложенности, расширения и исходник mount; подпапки не сканируются |
| Permission denied | Владельца каталогов output/cache; Docker-команды используют ваш UID/GID |
| Existing output differs | Сохраните ручные правки; для других исходников или настроек выберите новый каталог |
INCOMPLETE |
Первое исключение и восстановление по файлам |
Программа завершилась, но текст неверный
Если автоопределение ошиблось, задайте известный язык речи (ru, en и т. п.). Перед сменой модели проверьте аудиодорожку. Сравните крупную модель на том же фрагменте; имена и специальные термины всё равно требуют проверки.
VAD убирает предполагаемые неречевые участки и в примере включён по умолчанию. Но он способен пропустить тихую речь. Сравните --no-vad на коротком клипе в новом выходном каталоге. Тишина и музыка могут дать выдуманный текст даже при успешном завершении программы. Вероятность языка не равна достоверности расшифровки.
Повторы на длинных записях иногда требуют настроек декодирования и контекста вне небольшого набора параметров примера. Сначала выделите проблемный фрагмент; не гоняйте весь архив многократно. Если субтитры съезжают, проверьте дорожку и смещение вырезанного клипа, затем ограничения таймкодов сегментов.
Готовы запустить?
Запустить GPU-сервер