feat: ASRX hybrid pipeline, identity history, worker fixes, checkpoint system

This commit is contained in:
Accusys
2026-06-02 07:13:23 +08:00
parent e3066c3f49
commit e1572907ae
198 changed files with 43705 additions and 8910 deletions

View File

@@ -0,0 +1,35 @@
"""
Whisper Local - uses faster-whisper for per-segment transcription
"""
import numpy as np
def load_model(size="small"):
from faster_whisper import WhisperModel
return WhisperModel(size, device="cpu", compute_type="int8")
def transcribe_segment(wav, sample_rate, start_sec, end_sec, model):
start_sample = int(start_sec * sample_rate)
end_sample = int(end_sec * sample_rate)
if start_sample >= len(wav):
return {"text": "", "language": "", "lang_prob": 0.0, "segments": []}
segment_wav = wav[start_sample:min(end_sample, len(wav))]
segments_generator, info = model.transcribe(segment_wav, language=None)
text = ""
lang_prob = info.language_probability if info else 0.0
language = info.language if info else ""
segs = list(segments_generator)
for seg in segs:
text += seg.text + " "
return {
"text": text.strip(),
"language": language,
"lang_prob": lang_prob,
"segments": segs,
}