Первоначальная версия VidConf
This commit is contained in:
25
backend/core/plugins/transcriber.py
Normal file
25
backend/core/plugins/transcriber.py
Normal file
@@ -0,0 +1,25 @@
|
||||
"""Контракт плагина 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` в список сегментов."""
|
||||
...
|
||||
Reference in New Issue
Block a user