chore: atualização geral

This commit is contained in:
João Henrique
2026-08-19 16:35:29 -04:00
parent 8fca456ceb
commit e7748c2c58
66 changed files with 13037 additions and 4237 deletions
+11 -2
View File
@@ -16,7 +16,7 @@ import logging
import os
import re
from pathlib import Path
from typing import List, Optional, Sequence, Tuple
from typing import Callable, List, Optional, Sequence, Tuple
logger = logging.getLogger(__name__)
@@ -118,7 +118,10 @@ def invert_ranges(
def transcribe(
path: str, model_size: str = "base", language: Optional[str] = None
path: str,
model_size: str = "base",
language: Optional[str] = None,
progress_cb: Optional[Callable[[float], None]] = None,
) -> Optional[dict]:
"""Transcribe an audio/video file locally with word-level timestamps.
@@ -170,6 +173,10 @@ def transcribe(
)
segments: List[dict] = []
words: List[dict] = []
# `info.duration` is known upfront (from the container), so each
# segment's end time — yielded lazily as faster-whisper decodes —
# gives real, granular progress instead of a single before/after step.
total_duration = float(info.duration) if info.duration else 0.0
for seg in segments_iter:
start = float(seg.start)
end = float(seg.end)
@@ -182,6 +189,8 @@ def transcribe(
"end_fmt": format_timestamp(end),
}
)
if progress_cb is not None and total_duration > 0:
progress_cb(min(end / total_duration, 1.0))
for w in seg.words or []:
ws = float(w.start)
we = float(w.end)