Seste Cinsiyet Tespiti: Spektral Analizden ML Modellerine
Tech
audio analysis
python
machine learning
librosa

Seste Cinsiyet Tespiti: Spektral Analizden ML Modellerine

Ses analizcimizde ses cinsiyeti sınıflandırmasını nasıl iyileştirdik — güvenilmez %100 güven skorlarından, daha iyi özellikler ve ML yaklaşımlarıyla dürüst tahminlere.

Uygar DuzgunUUygar Duzgun
Mar 26, 2026
Updated 4 Nis 2026
4 min read

Sorun: Aşırı Güvenli ve Sık Sık Yanlış

MixAnalytic üzerinde ses analizi özelliğimizi güncelledik — müzik prodüktörleri için AI destekli ses analizi aracımız. Bu özellik, bir parçanın vokal içerip içermediğini tespit eder ve sesin cinsiyetini tahmin ederek mix geri bildirimini kişiselleştirir.

Önceki uygulama, F0 (temel frekans) tahmini ve spektral centroid analizi için librosa kullanıyordu. Çalışıyordu... bazen. Asıl sorun neydi? Erkek vokalleri olan parçalarda bile “Kadın ses — %100 güven” diye kendinden emin şekilde ilan ediyordu. Bu, özelliğin hiç olmamasından daha kötü.

İşte bunu düzeltirken öğrendiklerimiz ve Python’da ses analizi yapan herkesin erişebileceği üç iyileştirme seviyesi.

Seviye 1: Güven Hakkında Yalan Söylemeyi Durdurun

En hızlı kazanım, spektral analizin *yapamadıklarını* kabul etmek. Saf F0 + spektral centroid analizi bir sınıflandırıcı değil; kaba bir sezgisel (heuristic) yaklaşımdır. Yaptığımız düzeltmeler:

Güveni %85 ile sınırla — yalnızca spektral analiz asla kesinlik iddia etmemeli
Belirsizliği her zaman ekle — her sonuçta en az %10 “belirsiz” olsun
Daha yumuşak dil — “erkek ses tespit edildi” yerine “muhtemelen erkek”
Daha geniş örtüşme bölgeleri — 140-185 Hz aralığı gerçekten belirsiz (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) ```

Bu analizeyi *daha iyi* yapmaz, ama *dürüst* yapar. “Muhtemelen kadın, %72” diyen bir sistem, “kadın, %100” deyip yanlış yapan bir sistemden daha çok güven kazanır.

Prodüktörler için araçlar inşa ederken tam da önemli olan türden bir detay bu — ses tespiti bariz şekilde yanlışsa, kullanıcılar mix analizinize de güvenmeyi bırakır.

Seviye 2: MFCC ile Daha İyi Özellikler

F0-yalnız sınıflandırmanın temel sorunu şudur: Sadece perde (pitch) cinsiyeti belirlemez. Derin bir kadın contralto ile bir erkek tenor neredeyse aynı F0 değerlerine sahip olabilir.

MFCC’ler (Mel-Frequency Cepstral Coefficients) sesin spektral zarfını (spectral envelope) yakalar — yani vokal yolunun şekli — bu da erkek ve kadın sesleri arasında daha güvenilir şekilde farklılaşır. Araştırmalar tutarlı biçimde, 13 MFCC + bunların deltalariyle (deltas) çok daha iyi ayrışma sağlandığını gösteriyor.

```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) ```

Etiketli ses verisiyle eğitilmiş basit bir sklearn sınıflandırıcısıyla (SVM veya Random Forest) birleştirildiğinde bu yaklaşım %85-90 doğruluğa ulaşabilir — yalnızca spektral sezgisel yaklaşımlara göre anlamlı bir sıçrama.

En iyi yanı: Çoğu ses projesinde zaten bulunanların ötesinde yeni bir bağımlılık gerektirmemesi (librosa + scikit-learn).

Seviye 3: Önceden Eğitilmiş ML Modelleri

Üretim seviyesinde doğruluk (90-97%) için özel modeller yol gösterir. Öne çıkan iki seçenek:

inaSpeechSegmenter

Fransız Ulusal Görsel-İşitsel Enstitüsü’nden CNN tabanlı bir araç seti. MIREX 2018 konuşma tespit (speech detection) yarışmasını kazandı ve konuşma/ müzik/ gürültü olarak segmentlere ayırırken konuşmacı cinsiyetini de sınıflandırıyor.

```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)] ```

Artılar: Saha testinden geçmiş, aktif olarak korunuyor, karışık içerimi (konuşma + müzik) iyi yönetiyor. Eksiler: ~200MB ek bağımlılık ekler, ffmpeg gerektirir, CPU’da daha yavaş.

Hugging Face Wav2Vec2

Cinsiyet sınıflandırması için ince ayar yapılmış (fine-tuned) önceden eğitilmiş transformer modelleri. `norwoodsystems/norwood-maleVSfemale` modeli hafif bir ikili sınıflandırıcıdır.

```python from transformers import pipeline

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

Artılar: ~%97 doğruluk, basit API, wav2vec2 ön-eğitiminden faydalanır. Eksiler: Daha büyük model boyutu, transformers + torch gerektirir.

Hangi Yaklaşımı Kullanmalısınız?

YaklaşımDoğrulukBağımlılıklarHız
----------------------------------------
F0 + spectral (dürüst)~60-70%yalnızca librosaÇok hızlı
MFCC + sklearn~85-90%librosa + sklearnHızlı
inaSpeechSegmenter~92-95%CNN modeli (~200MB)Orta
Wav2Vec2 ince ayarlı~95-97%transformers + torchDaha yavaş

Bizim gibi bir müzik analizi aracı için tatlı nokta şu an Seviye 1 (kısıtlamalar konusunda dürüst olmak) ve gelecek bir sürüm için Seviye 2 veya 3 üzerinde çalışmak. Yapabileceğiniz en kötü şey yanlış güven göstermektir — ses tespiti bariz şekilde yanlışsa, kullanıcılar tüm analizinizin güvenini kaybeder.

Ana Çıkarım

Sadece librosa ve spektral özelliklerle ses analizi geliştiriyorsanız: bunun yapabildikleri konusunda alçakgönüllü olun. Güven skorlarınızı sınırlandırın, temkinli (hedging) dil kullanın ve her zaman belirsizliği gösterin. Kullanıcılar, yanlış kesinlikten ziyade dürüstlüğe saygı duyar.

Ve eğer doğruluk gerçekten kullanım senaryonuz için önemliyse, MFCC özelliklerine ya da önceden eğitilmiş bir modele yatırım yapın. %60’tan %95’e sıçrama, ek karmaşıklığa değecek kadar büyük.

Farkı duymak ister misiniz? MixAnalytic’te bir parça yükleyin — ücretsizdir ve AI destekli tam mix geri bildirimiyle birlikte size ses analizi sunar.