fix: trim chatterbox voice uploads over 30s in webui
This commit is contained in:
@@ -952,6 +952,22 @@ def api_chatterbox_upload():
|
||||
loops = (6000 // len(seg)) + 1
|
||||
seg = seg * loops
|
||||
log.debug(f"Voice upload: looped clip to {len(seg)}ms")
|
||||
if len(seg) > 30000:
|
||||
trimmed = seg[:30000]
|
||||
try:
|
||||
from pydub.silence import detect_silence
|
||||
search_start = max(0, 30000 - 1500)
|
||||
silences = detect_silence(
|
||||
seg[search_start:30000], min_silence_len=300, silence_thresh=-40
|
||||
)
|
||||
if silences:
|
||||
cutoff_local = silences[0][0]
|
||||
if cutoff_local > 100:
|
||||
trimmed = seg[: search_start + cutoff_local]
|
||||
except Exception:
|
||||
pass
|
||||
seg = trimmed
|
||||
log.debug(f"Voice upload: trimmed clip to {len(seg)}ms")
|
||||
buf = _io.BytesIO()
|
||||
seg.export(buf, format="wav")
|
||||
audio_bytes = buf.getvalue()
|
||||
|
||||
Reference in New Issue
Block a user