fix(openvino): корректный compute_type в CLI + индикатор прогресса

- Зачем:
  - CLI показывал int8, хотя реально использовался fp16 для large-v3.
  - при транскрипции OpenVINO не было индикации прогресса.
- Что:
  - _resolve_repo возвращает (repo_id, actual_compute_type).
  - бэкенды сохраняют actual_compute_type после ensure_model_available.
  - CLI выводит фактический compute_type после load_model, а не дефолтный.
  - generate() запускается в потоке, статус обновляется каждую секунду с elapsed time.
- Проверка:
  - uv run pytest -q — 124 passed.
  - uv run transcribe file.mp4 --device openvino --model large-v3 показывает fp16.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-22 11:58:29 +03:00
co-authored by Claude Opus 4.6
parent f5345031ef
commit f42d3ae842
5 changed files with 65 additions and 18 deletions
@@ -46,6 +46,9 @@ MODEL_REQUIRED_FILES = [
class FasterWhisperBackend:
"""Бэкенд транскрипции через faster-whisper (CTranslate2)."""
def __init__(self):
self.actual_compute_type: str | None = None
def ensure_model_available(
self,
model_name: str,
@@ -53,6 +56,7 @@ class FasterWhisperBackend:
on_status: Callable[[str], None] | None = None,
) -> str:
"""Резолвит alias модели в repo_id и гарантирует наличие файлов."""
self.actual_compute_type = compute_type
local_path = Path(model_name).expanduser()
if local_path.is_dir():
_validate_model_dir(local_path)