Skip to main content

SonicPure 🎙️

Audio Noise Reduction & Enhancement Library

Profesyonel ses temizleme kütüphanesi - çoklu motor desteği, otomatik sessizlik kısaltma ve akıllı normalizasyon.

Python License: MIT

✨ Özellikler

  • 🎯 3 Güçlü Gürültü Giderme Motoru

    • SpeechBrain MetricGAN+ (en kaliteli)
    • RNNoise (hızlı, gerçek zamanlı)
    • NoiseReduce (basit, hızlı)
  • 🔇 Akıllı Sessizlik Kısaltma

    • Otomatik sessizlik tespiti (RMS-based)
    • Uzun sessizlikleri 0.5 saniyeye kısaltır
    • %2-13 arası süre tasarrufu
  • 📊 Gentle Normalization

    • Referans dosya bazlı RMS normalizasyonu
    • Tanh-based yumuşak limiting (analog tarzı)
    • Pik sesleri önler, doğal kaliteyi korur
  • ⚡ Hızlı & Verimli

    • 50 saniyelik ses → 2 saniyede işlenir
    • Otomatik sample rate dönüşümü
    • Geçici dosyalar otomatik temizlenir

📦 Kurulum

Pip ile (Önerilen)

# Development modunda kurulum (düzenlenebilir)
pip install -e .

# Normal kurulum
pip install .

Manuel Kurulum

# Bağımlılıkları yükle
pip install -r requirements.txt

# Kütüphaneyi Python path'ine ekle
export PYTHONPATH="${PYTHONPATH}:/path/to/sonicpure"

🚀 Hızlı Başlangıç

CLI Kullanımı

# Basit kullanım
python clean_audio.py input.wav output.wav

# Farklı motor seç
python clean_audio.py input.wav output.wav --engine rnnoise

# Daha agresif sessizlik kısaltma
python clean_audio.py input.wav output.wav --max-silence 0.3

# Ara dosyaları kaydet (debug için)
python clean_audio.py input.wav output.wav --save-intermediate

# Normalizasyon olmadan
python clean_audio.py input.wav output.wav --no-normalize

Python Kütüphanesi Olarak

from sonicpure import AudioPipeline

# Basit kullanım
pipeline = AudioPipeline()
result = pipeline.process("input.wav", "output.wav")

print(f"Original: {result['original_duration']:.2f}s")
print(f"Final: {result['final_duration']:.2f}s")
print(f"Saved: {result['time_saved']:.2f}s")

İleri Seviye Örnekler

from sonicpure import AudioPipeline

# Özelleştirilmiş pipeline
pipeline = AudioPipeline(
    engine='speechbrain',        # veya 'rnnoise', 'noisereduce'
    max_silence=0.5,             # maksimum sessizlik süresi
    silence_threshold_db=-40,    # sessizlik eşiği
    normalize=True,              # normalizasyon uygula
    reference_file='ref.wav'     # referans dosya (opsiyonel)
)

result = pipeline.process("input.wav", "output.wav")

# Detaylı sonuçlar
print(f"Engine: {result['engine']}")
print(f"Processing time: {result['processing_time']:.2f}s")
print(f"Time saved: {result['time_saved']:.2f}s ({result['time_saved']/result['original_duration']*100:.1f}%)")

Motorları Ayrı Ayrı Kullanma

from sonicpure.engines import SpeechBrainEngine, RNNoiseEngine, NoiseReduceEngine
from sonicpure.processors import SilenceTrimmer, AudioNormalizer

# Sadece gürültü temizleme
engine = SpeechBrainEngine()
engine.process("input.wav", "denoised.wav")

# Sadece sessizlik kısaltma
trimmer = SilenceTrimmer()
trimmer.trim("input.wav", "trimmed.wav", max_silence_duration=0.5)

# Sadece normalizasyon
normalizer = AudioNormalizer()
normalizer.normalize("input.wav", "normalized.wav", reference_file="ref.wav")

🎛️ Motorlar Karşılaştırması

Motor Hız Kalite Kullanım Durumu
SpeechBrain 🐢 Yavaş ⭐️⭐️⭐️⭐️⭐️ En İyi Podcast, video dubbing, profesyonel kullanım
RNNoise 🚀 Hızlı ⭐️⭐️⭐️⭐️ Çok İyi Gerçek zamanlı, streaming, batch işleme
NoiseReduce ⚡️ Çok Hızlı ⭐️⭐️⭐️ İyi Hızlı önizleme, basit temizlik

📊 Test Sonuçları

Gerçek TTS ses dosyaları üzerinde test edildi:

Dosya Süre İşlem Tasarruf Sonuç
test0.wav 3.32s 1.40s 0.42s (%12.7) ✅ Çok iyi
test1.wav 43.88s 2.26s 1.25s (%2.8) ✅ Mükemmel
tts_original.wav 49.48s 8.70s 2.04s (%4.1) ✅ Harika

🛠️ Teknik Detaylar

Pipeline Adımları

  1. Noise Reduction

    • SpeechBrain: 16kHz model, otomatik resampling
    • RNNoise: Frame-based processing, Savitzky-Golay smoothing
    • NoiseReduce: Spectral subtraction, prop_decrease=0.7
  2. Silence Trimming

    • RMS energy-based detection
    • -40 dB threshold (ayarlanabilir)
    • Minimum 0.3s sessizlik tespiti
    • Maksimum 0.5s sessizlik bırakır
  3. Normalization

    • Referans dosya bazlı RMS matching
    • Safe gain hesaplama (clipping önleme)
    • Tanh-based gentle limiter (threshold: 0.95)
    • Max peak: -0.5 dBFS (güvenlik için)

Ses Kalitesi Garantisi

  • ✅ Pik sesler engellenir (gentle limiting)
  • ✅ Doğal ses karakteri korunur
  • ✅ Artifact-free işlem
  • ✅ Clipping önleme garantili

📁 Proje Yapısı

sonicpure/
├── sonicpure/               # Ana kütüphane
│   ├── __init__.py         # Paket tanımı
│   ├── engines.py          # Gürültü temizleme motorları
│   ├── processors.py       # Trimmer & Normalizer
│   └── pipeline.py         # All-in-one pipeline
├── clean_audio.py          # CLI aracı
├── test_*.py               # Test scriptleri
├── audio_analyzer.py       # Ses analiz aracı
├── audio_normalizer.py     # Standalone normalizer
├── silence_trimmer.py      # Standalone trimmer
├── setup.py                # Paket kurulum
├── requirements.txt        # Bağımlılıklar
├── README.md              # Bu dosya
└── prd.md                 # Proje gereksinimleri

🤝 Katkıda Bulunma

  1. Fork yapın
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Commit edin (git commit -m 'Add amazing feature')
  4. Push edin (git push origin feature/amazing-feature)
  5. Pull Request açın

📝 Lisans

MIT License - Detaylar için LICENSE dosyasına bakın.

🙏 Teşekkürler

📧 İletişim

Mehmet Yerli - iletisim@mehmetyerli.com.tr

Proje Linki: https://github.com/mytsx/sonicpure


⭐️ Projeyi beğendiyseniz yıldız vermeyi unutmayın!

Metadata

Release files for sonicpure 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sonicpure 0.1.1
File Size Uploaded
sonicpure-0.1.1.tar.gz 28.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sonicpure 0.1.1
File Interpreter ABI Platform
sonicpure-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 41.0 kB

Release files / sonicpure-0.1.1.tar.gz

Download URL sonicpure-0.1.1.tar.gz
Size 28.9 kB
Tags Source
SHA-256 checksum
How to use checksums
05830dfde6d3dace49a1ee690be070a9df42e0633e2a62309e327c865dfb4594
BLAKE2b-256 checksum
How to use checksums
c128e556df297011c0d1bf98367690f23a7e20b65d956acdacac490f80ca3acd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / sonicpure-0.1.1-py3-none-any.whl

Download URL sonicpure-0.1.1-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff1a554aec913bc0703962443925291459671505d46d3c2daa0227de593f20ee
BLAKE2b-256 checksum
How to use checksums
3679b2e86f302704f62ee7047c1e9c443bb809be4f87d6c8cfdf6c4b0dd2cb17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page