feat(scaffold): добавлена начальная структура проекта local-transcriber
- Зачем: - необходима базовая структура пакета для последовательной реализации шагов по плану. - Что: - создан pyproject.toml с зависимостями typer, rich и dev-зависимостью pytest. - добавлены модули-заглушки cli.py, transcriber.py, formatter.py, utils.py с сигнатурами и raise NotImplementedError. - созданы пустые тестовые файлы test_formatter.py, test_transcriber.py, test_utils.py. - добавлены .gitignore и uv.lock; отмечены чекбоксы шага 1 в docs/plan.md. - Проверка: - uv run transcribe --help — показывает аргументы. - uv run pytest — тесты обнаруживаются без ошибок. - python -c "from local_transcriber import cli, transcriber, formatter, utils" — импорт без ошибок.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from collections.abc import Callable
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
@dataclass
|
||||
class Segment:
|
||||
start: float # seconds
|
||||
end: float # seconds
|
||||
text: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class TranscribeResult:
|
||||
segments: list[Segment]
|
||||
language: str
|
||||
language_probability: float
|
||||
duration: float # seconds
|
||||
device_used: str # "cpu" / "cuda"
|
||||
|
||||
|
||||
def transcribe(
|
||||
file_path: Path,
|
||||
model_name: str = "large-v3",
|
||||
device: str = "auto",
|
||||
compute_type: str = "int8",
|
||||
language: str | None = None,
|
||||
on_segment: Callable[[Segment], None] | None = None,
|
||||
) -> TranscribeResult:
|
||||
raise NotImplementedError
|
||||
Reference in New Issue
Block a user