Files
vidconf/backend/core/plugins/transcriber.py

26 lines
798 B
Python

"""Контракт плагина Transcriber."""
from abc import ABC, abstractmethod
from dataclasses import dataclass
from typing import ClassVar
@dataclass(frozen=True, slots=True)
class Segment:
"""Один транскрибированный сегмент трека."""
start: float # секунды от начала трека
end: float
text: str
class Transcriber(ABC):
"""Интерфейс Strategy для реализаций преобразования речи в текст."""
provider: ClassVar[str]
@abstractmethod
def transcribe(self, audio_path: str, language: str = "ru") -> list[Segment]:
"""Транскрибировать аудиофайл по пути `audio_path` в список сегментов."""
...