/
sarus
/
audio-agent
Обзор
Документация
Войти
/
sarus
/
audio-agent
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/transcriber.py
59 строк
2 KB
otcheskiy
Add Windows CUDA launcher
18 июн 2026, 00:29
18 июн 2026, 00:29
97618fb
Код
Авторство
О чём код?
import os import site from pathlib import Path _DLL_DIRECTORY_HANDLES = [] def _add_cuda_dll_directories() -> None: if os.name != "nt": return candidate_dirs = [] for site_package in site.getsitepackages(): site_path = Path(site_package) nvidia_dir = site_path / "nvidia" if nvidia_dir.exists(): candidate_dirs.extend(nvidia_dir.glob("*/bin")) for dll_dir in candidate_dirs: if dll_dir.exists(): handle = os.add_dll_directory(str(dll_dir)) _DLL_DIRECTORY_HANDLES.append(handle) _add_cuda_dll_directories() from faster_whisper import WhisperModel from config import COMPUTE_TYPE, DEVICE, INITIAL_PROMPT, LANGUAGE def transcribe_audio(audio_path: str, model_size: str) -> tuple[str, list[dict]]: model = WhisperModel(model_size, device=DEVICE, compute_type=COMPUTE_TYPE) # initial_prompt — короткий словарь терминов (без готовых фраз), чтобы large-модели # не зацикливались на повтор prompt; condition_on_previous_text=False снижает # перенос ошибок и повторов из предыдущих сегментов segments_iter, _info = model.transcribe( audio_path, language=LANGUAGE, initial_prompt=INITIAL_PROMPT, condition_on_previous_text=False, ) segments: list[dict] = [] text_parts: list[str] = [] for segment in segments_iter: segments.append( { "start": round(segment.start, 3), "end": round(segment.end, 3), "text": segment.text.strip(), } ) text_parts.append(segment.text) return "".join(text_parts).strip(), segments