Diese Pipeline wurde aufgebaut, um ein Audio‑Klassifizierungsmodell auf dem Coral Edge TPU zu betreiben.
Hinweise zur Datensammlung:
- Mindestens 70 Aufnahmen a 1 Sekunde pro Aufnahme.
- Vielfältige Hintergründe (z. B. Stille, Konversationen, Haushaltsgeräusche).
- In der Praxis waren mehrere Iterationen aus Datensammeln und Training nötig, bis das Modell zuverlässig nutzbar war.
Diese Repo stellt eine eigenständige Trainings-Pipeline für Keyword-Spotting bereit.
data/keyword: Rohaufnahmen der Zielwörter (Unterordner je Wort)data/hintergrund: Hintergrundgeräusche als WAVexport/curated: Kuratierte Datenexport/mixed: Gemischte Daten (Zielwörter + Hintergrund, inkl._other,_background)export/features: Extrahierte STFT-Features (.npz)export/models: Modelle (.keras,.tflite, optional.h)src: Pipeline-Modulescripts: Hilfsskripte (Aufnahme, Snippet-Cutter)tests: einfache Inferenztests
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- In
data/keywordgilt: JEDES Keyword hat einen eigenen Unterordner (z. B.data/keyword/lome/,data/keyword/notfall/) und darin liegen die Audio-Dateien für dieses Keyword. - In
data/hintergrundkönnen die Hintergrund-Audios direkt in den Ordner abgelegt werden (kein Unterordner nötig).
Optional: Längere WAVs in 1s-Snippets schneiden:
python scripts/cut_snippets.py --in_file pfad/zur/datei.wav --out_dir data/keyword/lomeAudio aufnehmen:
python scripts/record_audio.py --out_file data/keyword/lome/sample.wav --duration 3 --sample_rate 16000python start_trainings_pipeline.py \
--targets "<keyword_1>,<keyword_2>" \
--max_per_class 0 \
--sample_rate 16000 \
--sample_time 1.0 \
--bg_snippets_per_file 5 \
--epochs 100 \
--trials 5 \
--export_headerHinweise zur Verwendung:
- Ersetze
<keyword_1>,<keyword_2>bei--targetsdurch deine Zielwörter. Beispiel:--targets "lome,notfall". - Lege Audios zu jedem Keyword in
data/keyword/<keyword>/ab, z. B.data/keyword/lome/. - Lege Hintergrund-Audios direkt in
data/hintergrund/. - Für einen schnellen Test kannst du mit kleinen Werten starten, z. B.
--epochs 1 --trials 1.
Ergebnis:
export/models/model.kerasexport/models/model.tflite- Optional:
export/models/model.h
python -m pytest -qCopyright (c) 2025, Starvinci. Alle Rechte vorbehalten.