# -*- 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")