Files
2026-linux-sumka/asr_filter.py
2026-09-17 00:46:04 +03:00

47 lines
1.1 KiB
Python

from dataclasses import dataclass
from asr import AsrRawResult
from pydantic import BaseModel
class AsrFilterSegment(BaseModel):
"""Recognized audio segment after cleanup."""
id: int
"""Segment ID, unique within AsrResult"""
start: float
"""Segment start time"""
end: float
"""Segment end time"""
text: str
"""Segment text after cleanup"""
class AsrFilterResult(BaseModel):
"""Result of AsrFilter"""
segments: list[AsrFilterSegment]
"""List of produced segments"""
class AsrFilter:
"""This class performs filtering of raw ASR segments and produces events."""
def __init__(self) -> None:
pass
def filter(self, asr_raw_result: AsrRawResult) -> AsrFilterResult:
"""Filters raw ASR segments."""
result = AsrFilterResult(
segments=[]
)
i = 0
for orig in asr_raw_result.segments:
s = AsrFilterSegment(
id=i,
start=orig.start,
end=orig.end,
text=orig.text.strip()
)
i += 1
result.segments.append(s)
return result