Skip to main content

Audio noise reduction and enhancement library with multiple engines

Project description

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/mehmetyerli/sonicpure


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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sonicpure-0.1.0.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sonicpure-0.1.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file sonicpure-0.1.0.tar.gz.

File metadata

  • Download URL: sonicpure-0.1.0.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for sonicpure-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d59dfc7dfe14c9f46d18e075a5c383e40d1ab0065adbeeacca7585e70256e717
MD5 3eaaeb8d2e444334b3d70623bff1903d
BLAKE2b-256 1f7443cecb42f1238b7c5e7b9327f849fde6f8d559ff61974afc881342ceae72

See more details on using hashes here.

File details

Details for the file sonicpure-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sonicpure-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for sonicpure-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c34f8428e336dbd9b5861be37f089a00de4c2046e9bcb92c82c81b30d34896b
MD5 87932e37a340ef77c1081660f5e93120
BLAKE2b-256 c83b494e36aa8c0a17bfdbd105a23889754c14a5d7c8039c0e4cd8e54e82cee8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page