09a1c98514
- 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>
29 lines
1.4 KiB
Python
29 lines
1.4 KiB
Python
# -*- 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")
|