Lucy-TTS/F5: Skripte + Batches versionieren, schwere Assets ignoriert
- pocket_server.py (Produktions-TTS mit Stimmen-Waechter), text_norm, Bench-/Diag-Skripte - lucy-f5: f5_server/f5_test/bench_dml (DirectML-Experiment, Phase C/D offen) - .gitignore: venvs/Modelle/Audio/Logs der beiden Ordner + box_recon/gemma_swap-Scratch Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Verify: fehlen WÖRTER (Content-Cut) oder ist es nur gefühltes abruptes Einsetzen?
|
||||
Whisper-Rücktranskription der v2-Samples + Energie am 1./letzten Audio-Sample."""
|
||||
import os, numpy as np, soundfile as sf
|
||||
from faster_whisper import WhisperModel
|
||||
|
||||
DIR = r"C:\Users\TobisPC\Desktop\lucy_lsd_v2"
|
||||
EXPECT = {
|
||||
"kurz": "Hallo Commander, ich höre dich.",
|
||||
"mittel":"Guten Morgen, Commander. Das Backup ist sauber durchgelaufen und es gab keine Fehler.",
|
||||
"lang": "Natürlich kümmere ich mich darum, Commander. Ich starte den Dienst neu, prüfe die Protokolle und melde mich, sobald alles wieder läuft.",
|
||||
}
|
||||
w = WhisperModel("small", device="cpu", compute_type="int8")
|
||||
for lsd in [5, 6]:
|
||||
print(f"=== lsd {lsd} ===")
|
||||
for name in ["kurz", "mittel", "lang"]:
|
||||
p = os.path.join(DIR, f"lsd{lsd}_{name}.wav")
|
||||
a, sr = sf.read(p)
|
||||
a = np.asarray(a, dtype=np.float32).reshape(-1)
|
||||
# Energie der ersten/letzten 100ms NICHT-Pad (überspringe 90ms Pad)
|
||||
pad = int(0.09*sr)
|
||||
core = a[pad:-pad] if a.size > 2*pad else a
|
||||
seg, _ = w.transcribe(p, language="de", beam_size=5)
|
||||
txt = " ".join(s.text for s in seg).strip()
|
||||
print(f"[{name:6}] EXPECT: {EXPECT[name]}")
|
||||
print(f" GOT : {txt}")
|
||||
print(f" dur={a.size/sr:.2f}s core_start_amp={np.abs(core[:5]).max():.3f} core_end_amp={np.abs(core[-5:]).max():.3f}")
|
||||
print("VERIFY_DONE")
|
||||
Reference in New Issue
Block a user