Spracherkennung des Geschlechts in Audio: Von der Spektralanalyse zu ML-Modellen
Tech
audio analysis
python
machine learning
librosa

Spracherkennung des Geschlechts in Audio: Von der Spektralanalyse zu ML-Modellen

Wie wir die Klassifizierung des Geschlechts der Stimme in unserem Audio-Analyzer verbessert haben — von unzuverlässigen 100%-Confidence-Scores zu ehrlichen Schätzungen durch bessere Features und ML-Ansätze.

Uygar DuzgunUUygar Duzgun
Mar 26, 2026
Updated 4. Apr. 2026
4 min read

Das Problem: Übermütig und oft falsch

Wir haben die Voice-Analyse in MixAnalytic aktualisiert — unserem AI-gestützten Audio-Analyse-Tool für Musikproduzenten. Die Funktion erkennt, ob ein Track Vocals enthält, und schätzt das Voice-Geschlecht, um Mix-Feedback anzupassen.

Die vorherige Implementierung nutzte librosa mit Fundamental-Frequency (F0)-Schätzung und Spektralzentroid-Analyse. Es hat funktioniert... manchmal. Das eigentliche Problem? Es würde selbstbewusst „Weibliche Stimme — 100% Confidence“ auf Tracks mit männlichen Vocals ausgeben. Das ist schlimmer, als die Funktion gar nicht erst anzubieten.

So haben wir es beim Fix gelernt — und die drei Verbesserungsstufen, die für alle verfügbar sind, die Voice-Analyse in Python umsetzen.

Stufe 1: Schluss mit Lügen über die Confidence

Der schnellste Gewinn ist, zuzugeben, was die Spektralanalyse *nicht* kann. Reine F0- + Spektralzentroid-Analyse ist eine grobe Heuristik, kein Klassifikator. Unsere Fixes:

Confidence auf 85% begrenzen — Spektralanalyse allein sollte niemals Gewissheit behaupten
Immer Unsicherheit einbeziehen — mindestens 10% „unsicher“ in jedem Ergebnis
Weicher formulieren — „wahrscheinlich männlich“ statt „männliche Stimme erkannt“
Größere Überlappungszonen — der Bereich 140–185 Hz ist tatsächlich mehrdeutig (Tenor vs. Contralto)

```python MAX_CONFIDENCE = 85 # Spectral analysis alone cannot be definitive MIN_UNCERTAINTY = 10 # Always show some uncertainty

confidence = min(raw_confidence, MAX_CONFIDENCE) uncertainty = max(MIN_UNCERTAINTY, 100 - confidence) ```

Das macht die Analyse *nicht* besser, aber es macht sie *ehrlich*. Nutzer vertrauen einem System, das „wahrscheinlich weiblich, 72%“ sagt, eher als einem, das „weiblich, 100%“ behauptet und falsch liegt.

Genau diese Art von Detail ist entscheidend, wenn du Tools für Produzenten baust — wenn die Voice-Erkennung offensichtlich falsch ist, werden sie auch dem Rest deiner mix analysis nicht mehr vertrauen.

Stufe 2: Bessere Features mit MFCC

Das grundlegende Problem der F0-only-Klassifikation ist, dass Tonhöhe allein das Geschlecht nicht bestimmt. Eine tiefe weibliche Contralto und ein männlicher Tenor können nahezu identische F0-Werte haben.

MFCCs (Mel-Frequency Cepstral Coefficients) erfassen das Spektral-Envelope der Stimme — die Form des Vokaltrakts — und unterscheiden sich zuverlässiger zwischen männlichen und weiblichen Stimmen. Forschung zeigt konsistent, dass 13 MFCCs + ihre Deltas eine deutlich bessere Trennung liefern.

```python import librosa

# Extract 13 MFCCs + delta + delta-delta = 39 features mfccs = librosa.feature.mfcc(y=segment, sr=sr, n_mfcc=13) delta_mfccs = librosa.feature.delta(mfccs) delta2_mfccs = librosa.feature.delta(mfccs, order=2) ```

Kombiniert mit einem einfachen sklearn-Klassifikator (SVM oder Random Forest), der auf gelabelten Voice-Daten trainiert ist, kann dieser Ansatz 85-90% Genauigkeit erreichen — ein deutlicher Sprung gegenüber reinen spektralen Heuristiken.

Das Beste daran: keine neuen Abhängigkeiten über das hinaus, was die meisten Audio-Projekte ohnehin schon haben (librosa + scikit-learn).

Stufe 3: Vortrainierte ML-Modelle

Für Produktions-Grade-Genauigkeit (90-97%) sind spezialisierte Modelle der richtige Weg. Zwei herausragende Optionen:

inaSpeechSegmenter

Ein CNN-basiertes Toolkit vom französischen Nationalen Audiovisuellen Institut. Es gewann die MIREX 2018 Speech-Detection-Challenge und segmentiert Audio in Speech/Music/Noise, während es das Sprecher-Geschlecht klassifiziert.

```bash pip install inaSpeechSegmenter ```

```python from inaSpeechSegmenter import Segmenter seg = Segmenter(detect_gender=True) segments = seg("audio_file.wav") # Returns: [('female', 0.0, 4.5), ('music', 4.5, 8.2), ('male', 8.2, 12.0)] ```

Vorteile: Erprobt, aktiv gepflegt, kommt gut mit gemischtem Content klar (Speech + Music). Nachteile: Fügt eine ~200MB-Abhängigkeit hinzu, benötigt ffmpeg, langsamer auf CPU.

Hugging Face Wav2Vec2

Vortrainierte Transformer-Modelle, die für die Geschlechtsklassifikation feinjustiert wurden. Das Modell `norwoodsystems/norwood-maleVSfemale` ist ein leichter binärer Klassifikator.

```python from transformers import pipeline

classifier = pipeline("audio-classification", model="norwoodsystems/norwood-maleVSfemale") result = classifier("audio_file.wav") ```

Vorteile: ~97% Genauigkeit, einfache API, profitiert vom wav2vec2-Pre-Training. Nachteile: Größere Modellgröße, benötigt transformers + torch.

Welchen Ansatz solltest du verwenden?

AnsatzGenauigkeitAbhängigkeitenGeschwindigkeit
--------------------------------------------------------
F0 + spectral (ehrlich)~60-70%nur librosaSehr schnell
MFCC + sklearn~85-90%librosa + sklearnSchnell
inaSpeechSegmenter~92-95%CNN-Modell (~200MB)Mittel
Wav2Vec2 feinjustiert~95-97%transformers + torchLangsamer

Für ein Musik-Analyse-Tool wie unseres ist der Sweet Spot Stufe 1 jetzt (ehrlich über Grenzen sein), während du auf Stufe 2 oder 3 für ein zukünftiges Release hinarbeitest. Das Schlimmste, was du tun kannst, ist falsche Confidence zu zeigen — Nutzer werden aufhören, deiner gesamten Analyse zu vertrauen, wenn die Voice-Erkennung offensichtlich falsch ist.

Kernaussage

Wenn du Voice-Analyse nur mit librosa und spektralen Features baust: sei bescheiden darüber, was es kann. Begrenze deine Confidence-Scores, nutze vorsichtige Formulierungen und zeige immer Unsicherheit. Deine Nutzer werden Ehrlichkeit gegenüber falscher Präzision respektieren.

Und wenn Genauigkeit für deinen Use Case wirklich wichtig ist, investiere in MFCC-Features oder in ein vortrainiertes Modell. Der Sprung von 60% auf 95% Genauigkeit ist die zusätzliche Komplexität mehr als wert.

Willst du den Unterschied hören? Lade einen Track auf MixAnalytic hoch — es ist kostenlos und liefert dir Voice-Analyse zusammen mit vollständigem Mix-Feedback, das von AI unterstützt wird.