Scipy - Ses İşleme


14

Ses sinyali işleme için iyi araçlar arıyorum. Konuşma ve müzik analizi, otomatik dil tanımlama vb.

Scipy kütüphanesi ses işleme için fonksiyonlar sunuyor mu? Ses Sinyali işleme için iyi bir araç var mı?

Bunun için bir araç önerebilir misiniz?


1
Evet, scipy bu tür şeyleri yapmak için altyapı sağlar, ancak daha yararlı bir cevap almak için (özellikle "[scipy] 'den daha iyi bir araç" olup olmadığını cevaplamak için ne sonradan biraz daha spesifik olmanız gerekir. ).
A_A

1
gerçek zamanlı mı yoksa çevrimdışı mı?
endolith

çevrimdışı. Konuşma / Müzik sınıflandırması arıyorum.
user1147663

1
Scipy ve Numpy birlikte verilerin hem gerçek zamanlı hem de çevrimdışı işlenmesi için mükemmel araçlar sağlar. Cython veya Ctypes ile birlikte (Cython yaklaşımını tercih etme eğilimindeyim), diğer kütüphanelerin sığmaya ikna edilememesi durumunda, C'de yazılmış düşük seviyeli hızlı işlemlerle numpy dizileri üzerinde çalışmak kolaydır.
Henry Gomersall

1
MATLAB'ın eksik olduğu bir şey, bir dizinin kaynağını 1 dışında bir şey olarak tanımlayabilme yeteneğidir, bu nedenle bir FFT'nin çıkışındaki DC değeri olması gerektiği gibi bin # 0 yerine bin # 1'de olduğu gibi. MATLAB (veya Octave) hakkında başka aptal şeyler var.
robert bristow-johnson

Yanıtlar:


9

Şahsen Python'u en iyi seçimlerden biri olarak buldum ve kendimi ses tanımlama alanında biraz çalıştım. Örneğin, gürültülü ses kayıtlarından kuşların otomatik tanımlanması için yazılımımı kontrol etmenizi bekliyoruz : Ornithokrites . Program Yeni Zelanda Koruma Bakanlığı tarafından kullanılıyor ve programdan memnunlar. Bu örneğe dayanarak Python kullanmanın çeşitli avantajlarına dikkat çekmek istiyorum:

  1. Tonlarca kütüphane sağlayan devasa, hızlı gelişen topluluk. SciPy, sinyal işleme için çok sayıda yöntem sağlar (Matlab kadar olgun ve olgun değil). Bununla birlikte, SciPy'nin en önemlilerinden biri olmasına rağmen, çabalarınızda size yardımcı olabilecek yüzlerce kişiden sadece biri olduğunu unutmayın. Aubio'yu müzik analizi için en iyi buldum . Konuşma ve müzik tanıma için Yaafe çıkarabileceğiniz çok sayıda ses özelliğinin keyfine varacaksınız .
  2. Bedava! Akademiden çıktıktan sonra Matlab'ın oldukça pahalı olduğunu çabucak anlarsınız. Ve bunu karşılayabilseniz bile, perspektif kullanıcılarınız bu bağımlılıktan memnun olmayacaktır. Örneğin, söz konusu Koruma Bakanlığı tescilli yazılımı kabul etmeyecektir.
  3. Tanımlama genellikle makine öğrenimi gerektirir ve Python bunun için harika bir araç setine sahiptir: sklearn. En son teknoloji ürünü kütüphanedir ve kullanımı kolaydır. Kaggle yarışmalarına (makine öğrenimi) bir göz atın ve kaç üst düzey programcının Python ve sklearn kullandığını kontrol edin.
  4. "Büyük verileri" yönetebilirsiniz. Büyük ağa bağlı kayıt veritabanlarına karşı analiz yapmak istiyorsanız, Python iyi kurulmuş araç setine sahiptir. Matlab / Octave arayüzünü Hadoop ile kolayca düşünmüyorum, ancak yanılıyorsam lütfen beni düzeltin. R bu alanı daha iyi yapıyor.
  5. Arayüzden bahsetmişken, programınızı bir web sitesiyle kolayca arayüzleyebilirsiniz. Ornithokrites'i (kuş tanıma) yönetme şeklim bu: program Amazon Web Services bulut bilişim hizmetinde çalışıyor. Yazılımınızı, gerekli tüm kütüphanelerin kurulum prosedüründen geçmek istemeyen diğer insanlara sunmak istiyorsanız harika.

İkinci tercihim R olacaktı. Python kadar zengin özelliklere sahip olmasa da, çok sayıda kullanışlı kütüphaneye sahip (örneğin uygulamalarınız için seewave'i kontrol edin ). Bunların hem Windows hem de Linux'a yüklenmesi, başkalarının programınızı kullanmasını istiyorsanız önemli olan bir parça kektir. Ancak, deneyimime göre, R'deki yüksek performanslı bilgi işlem daha zordur - çok fazla işlem ve tanımlama yapmanız gerekiyorsa fark edilmesi gereken önemli bir şeydir.

Python'da müzik sınıflandırmasına örnekler:

Python ile Kitap Oluşturma Makinesi Öğrenme Sistemleri müzik sınıflandırması hakkında bir bölüme sahiptir

Diğer araçlar (hiçbir şekilde tam olmayan liste): Müzikte Python


2

Görünüşe göre Python, bunun için iyi bir araç seti ile popüler bir dil gibi görünüyor ... Aslında bazı müzik teknolojisi grad bölümlerinde ve şirketlerde kullanımda gördüm.

Akademide, Matlab'da yapılan bu tür işleri görmek çok yaygındır, çünkü son derece kolay bir IDE'de birçok güçlü araç setini (Sinyal İşleme, Paralel Hesaplama, grafik, Veritabanı yardımcı programları, Makine Öğrenimi, AI) bir araya getirir. Bununla birlikte, paraya mal olur ve bazı dezavantajları vardır (uygulama tasarımı ve performansı açısından en iyi programlama dili değil, bu nedenle çoğunlukla bir prototipleme aracıdır, ancak C'ye kadar derlenebilir). Octave ücretsiz bir alternatiftir, ancak kullanmadığım için sinyal işleme araçlarının veya yazılımın kalitesini garanti edemiyorum.


Bunun için harika bir kütüphane github.com/worldveil/dejavu . Python, açık kaynak kodlu, MIT lisanslı ve ses tanıma ve parmak izi yapıyor.
lollercoaster

scipyekosistemin çok fazla MATLAB işlevselliği vardır.
Darleison Rodrigues

2

Ayrıca pyAudioAnalysis'i de kontrol edebilirsiniz : desen tanıma ve çeşitli ses özelliği uygulamaları için açık kütüphaneleri birleştirir. İlginç bulabileceğiniz pyAudioAnalysis uygulamasında uygulanan bazı örnek uygulamalar :

  • sessizliğin kaldırılması
  • konuşmacı değişimi
  • SVM, kNN vb. kullanarak segment sınıflandırması (ve eğitimi)
  • ortak segmentasyon-sınıflandırma (HMM kullanarak)
  • ses küçük resmi
  • ses içeriği görselleştirme

0

Python bağlamaları içeren Essentia ses analizi C ++ kütüphanesini kullanabilirsiniz . Python / scipy ortamının yanı sıra Essentia ile birlikte gelen birçok ses / müzik analiz algoritmasının avantajlarından yararlanacaksınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.