Режим на детекторе речи вместо диаризации
Диаризация занимала 79 % времени, а её метку мы не используем: на записи с одним микрофоном голоса не расходятся, роли расставляет LLM по смыслу. Silero VAD решает единственную нужную задачу и делает это вчетверо быстрее. Замер на 205 минутах: x16 -> x60, слов на 1,8 % меньше. Семь записей из восьми в пределах +-4 %, на одной теряется 19 %. Отдельно найдено: max_speech_duration у Silero по умолчанию 20 с, и на таких кусках распознавание теряет текст. Снижение до 6 с даёт 6-8 п.п. полноты бесплатно. Диаризация сохранена настройкой diarize. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
b2bad9d8e6
commit
5d576dd3c4
+4
-2
@@ -75,13 +75,15 @@ def _process(job_id: str, worker: Pipeline, pool) -> None:
|
||||
from app.worker import run_job
|
||||
|
||||
result = pool.submit(run_job, str(upload), speakers, worker.ffmpeg,
|
||||
settings.normalize, settings.recover_gaps).result()
|
||||
settings.normalize, settings.recover_gaps,
|
||||
settings.diarize).result()
|
||||
else:
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
wav = Path(tmp) / "audio.wav"
|
||||
to_wav16k(upload, wav, worker.ffmpeg, settings.normalize)
|
||||
result = worker.transcribe(wav, num_speakers=speakers,
|
||||
recover_gaps=settings.recover_gaps)
|
||||
recover_gaps=settings.recover_gaps,
|
||||
diarize=settings.diarize)
|
||||
result["filename"] = job["filename"]
|
||||
store.mark_done(job_id, result)
|
||||
log.info("задача %s готова: %.1f с аудио, x%s", job_id,
|
||||
|
||||
Reference in New Issue
Block a user