Spracherkennung und Audioaufbereitung sind zentrale Bausteine moderner Sprachverarbeitung. Eine besondere Herausforderung besteht darin, aus langen Aufnahmen nur die Abschnitte zu extrahieren, in denen tatsächlich gesprochen wird. Dies spart nicht nur Speicherplatz, sondern vereinfacht auch die weitere Verarbeitung – etwa vor der Transkription.
Mit der Kombination aus Silero VAD und ONNX Runtime lässt sich diese Aufgabe effizient und präzise lösen. In diesem Leitfaden wird Schritt für Schritt gezeigt, wie ein 14-Sekunden-Gespräch zwischen zwei Sprechern analysiert und in zwölf separate Sprachsegmente aufgeteilt wird. Die Methode nutzt dabei ausschließlich die CPU – ideal für lokale Anwendungen ohne Grafikkartenunterstützung.
Warum Sprachsegmente extrahieren?
Lange Audiodateien enthalten oft lange Passagen ohne Sprachanteile. Diese Stille kann die Leistung nachfolgender Prozesse wie Spracherkennung oder Transkription beeinträchtigen. Durch gezieltes Filtern lassen sich folgende Vorteile erzielen:
- Reduzierung des Datenvolumens: Nur relevante Abschnitte werden weiterverarbeitet.
- Verbesserte Transkriptionsgenauigkeit: Weniger Hintergrundgeräusche führen zu präziseren Ergebnissen.
- Effizientere Speicherung: Geringerer Speicherbedarf durch getrennte Dateien.
Die Extraktion der Sprachsegmente erfolgt dabei in Echtzeit oder nahe an Echtzeit, je nach Hardware. Besonders praktisch ist die Möglichkeit, die Segmente direkt als WAV-Dateien zu speichern – etwa für Archivierungszwecke oder weitere Analysen.
Benötigte Tools und Einrichtung
Für die Umsetzung dieses Verfahrens werden mehrere Open-Source-Tools benötigt. Die Installation erfolgt über die Paketmanager mise und uv, die eine einfache Verwaltung der Abhängigkeiten ermöglichen.
Voraussetzungen
- mise: Ein moderner Paketmanager für Entwicklungsumgebungen, der verschiedene Tools und Versionen verwalten kann.
- uv: Ein schneller Python-Paketmanager, der Abhängigkeiten effizient installiert.
- FFmpeg: Ein vielseitiges Tool zur Audio- und Videoverarbeitung, das hier zur Decodierung der MP3-Datei dient.
- curl: Wird für den Download der Sprachmodelldatei genutzt.
Die Einrichtung erfolgt mit wenigen Befehlen:
git clone --depth 1 --filter=blob:none --sparse
cd labs
git sparse-checkout set .gitignore .mise/tasks Makefile mise.toml 2026/07/03/silero-vad
make download-test-assets
mise -C 2026/07/03/silero-vad runBeim ersten Start lädt das Skript automatisch das ONNX-Modell silero_vad.onnx aus dem offiziellen Silero-Repository herunter. Anschließend werden die Python-Abhängigkeiten installiert und das Modell wird direkt auf der CPU ausgeführt.
Funktionsweise der Sprachsegmentierung
Das Verfahren basiert auf einem vortrainierten Modell, das die Wahrscheinlichkeit für Sprachanteile in kurzen Audioabschnitten berechnet. Die Analyse erfolgt in 32-Millisekunden-Chunks – einer Zeitspanne, die ausreicht, um natürliche Sprachmuster zu erkennen, aber kurz genug, um präzise Segmente zu bilden.
Wichtige Parameter und Einstellungen
- Abtastrate: 16 kHz – ausreichend für Sprachverarbeitung.
- Chunk-Größe: 512 Samples (entspricht 32 ms).
- Sprachschwellenwert: 0.5 – definiert den Beginn eines Sprachsegments.
- Ende-Schwellenwert: 0.35 – markiert das Ende eines Segments.
- Minimale Stille: 100 ms – verhindert zu frühes Beenden eines Segments.
- Minimale Sprache: 250 ms – filtert kurze Geräusche oder Störsignale.
- Padding: 30 ms – wird an Anfang und Ende jedes Segments hinzugefügt, um Kontext zu bewahren.
Das Modell verarbeitet die Audiodaten nicht unabhängig voneinander. Stattdessen wird der interne Zustand des ONNX-Laufzeitsystems sowie die vorherigen 64 Samples als Kontext für den nächsten Chunk genutzt. Diese Methode sichert die zeitliche Kontinuität und ermöglicht eine flüssige Verarbeitung – auch in Streaming-Szenarien.
Beispiel: Analyse eines 14-Sekunden-Gesprächs
Die Testdatei enthält einen Dialog zwischen zwei Sprechern in japanischer Sprache. Die Abschnitte wurden anschließend in zwölf Sprachsegmente unterteilt. Hier ein Ausschnitt der detektierten Segmente:
- Segment 1 (0,162s – 1,726s): Enthält die Frage „もしもし、もう駅に着いた?“ („Hallo? Bist du schon am Bahnhof?“).
- Segment 2 (2,050s – 2,462s): Kurze Antwort „うん。“ („Ja.“).
- Segment 3 (2,626s – 3,934s): „今、改札出たところ。“ („Ich bin gerade durch das Ticketgate gegangen.“)
Jedes Segment wurde als separate WAV-Datei gespeichert, wobei die Dateinamen chronologisch durchnummeriert sind. Die Extraktion war so präzise, dass natürliche Sprechpausen an Satzzeichen wie Punkten oder Fragezeichen erkannt wurden. Selbst kurze Antworten wie „got it“ oder „thanks“ blieben als eigenständige Segmente erhalten.
Leistung und Testergebnisse
Die Analyse wurde auf einem leistungsstarken Mac Studio mit Apple M4 Max-Prozessor durchgeführt. Die wichtigsten Messwerte zeigen:
- Gesamtdauer der Audiodatei: 14,171 Sekunden
- Verarbeitungszeit (nur VAD): 0,028 Sekunden
- Echtzeitfaktor: 0,002x – die Verarbeitung erfolgt also etwa 500-mal schneller als die tatsächliche Dauer der Audiodatei.
- Anzahl der Segmente: 12
- Gesamtdauer der extrahierten Sprachanteile: 11,917 Sekunden (84,1 % der Originaldatei)
Die Ergebnisse belegen, dass Silero VAD in Kombination mit ONNX Runtime auf der CPU eine extrem schnelle und zuverlässige Lösung für die Sprachsegmentierung bietet. Selbst auf einem durchschnittlichen Laptop lassen sich solche Aufgaben ohne spürbare Verzögerung durchführen.
Ausblick: Praktische Anwendungen
Die extrahierten Sprachsegmente können vielfältig weiterverwendet werden – etwa für:
- Transkriptionsdienste: Geringere Fehleranfälligkeit durch Fokussierung auf reine Sprachabschnitte.
- Sprachverarbeitungs-Pipelines: Integration in automatisierte Workflows für Chatbots oder Voice-Assistenten.
- Audio-Archivierung: Effizientere Speicherung von Gesprächen ohne redundante Stille.
- Sprachforschung: Präzisere Analysen von Sprachmustern in Dialogen.
Da das Verfahren auf Open-Source-Tools basiert, lässt es sich leicht an individuelle Anforderungen anpassen. Mit einer leistungsstärkeren Hardware oder GPU-Beschleunigung könnte die Verarbeitung noch weiter optimiert werden – etwa für Echtzeit-Anwendungen in Callcentern oder bei der Videobearbeitung. Die Kombination aus Silero VAD und ONNX Runtime eröffnet damit neue Möglichkeiten für eine effizientere Sprachdatenverarbeitung.
KI-Zusammenfassung
Konuşma aktivitesini otomatik olarak tespit eden Silero VAD modelini ONNX Runtime ile kullanarak ses kayıtlarınızı verimli bir şekilde segmentlere ayırın. Kullanım adımları ve performans sonuçları burada.