Farklı (müzikal?) Tonların ayırt edilmesi için hangi metodoloji kullanılır?


12

Bu soruna en iyi nasıl saldıracağımı araştırmaya ve anlamaya çalışıyorum. Müzik işleme, görüntü işleme ve sinyal işlemeyi birleştirir ve bu yüzden ona bakmak için sayısız yol vardır. Saf sig-proc alanında karmaşık görünen şey, görüntü veya müzik işleme yapan insanlar tarafından basit (ve zaten çözülmüş) olabileceğinden, ona yaklaşmanın en iyi yollarını araştırmak istedim. Her neyse, sorun aşağıdaki gibidir:resim açıklamasını buraya girin

Sorunun el çizimini affederseniz, aşağıdakileri görebiliriz:

Yukarıdaki şekilde 3 farklı tipte sinyale sahibim. İlki bir pals olduğu gelen frekans içerisine 'adımları' tür için ve tekrarlar. Belirli bir darbe süresine ve belirli bir darbe tekrarlama süresine sahiptir.f1f4

İkincisi sadece , ancak daha kısa bir darbe uzunluğuna ve daha hızlı bir darbe tekrarlama frekansına sahiptir.f1

Sonunda üçüncüsü bir ton .f1

Sorun, sinyal-1, sinyal-2 ve sinyal-3 arasında ayrım yapabilen bir sınıflandırıcı yazabilmem için bu soruna ne şekilde yaklaşacağım. Yani, sinyallerden birini beslerseniz, bu sinyalin böyle olduğunu söyleyebilmelidir. Hangi en iyi sınıflandırıcı bana çapraz bir karışıklık matrisi verir?

Bazı ek bağlam ve şimdiye kadar ne düşündüğümü:

Söylediğim gibi, bu bir dizi alanı birleştiriyor. Oturup bununla savaşa girmeden önce hangi metodolojilerin mevcut olabileceğini araştırmak istedim. İstemeden tekerleği yeniden icat etmek istemiyorum. Farklı bakış açılarından baktığım bazı düşünceler.

Sinyal İşleme Açısından: Baktığım bir şey, bir Cepstral Analizi yapmak ve daha sonra muhtemelen cepstrumun Gabor Bant Genişliğini , diğer 2'den sinyal-3'ü ayırt etmede kullanmak ve daha sonra ayırt edici sinyalde cepstrumun en yüksek zirvesini ölçmekti. 1 sinyal-2'den. Bu benim şimdiki sinyal işleme çalışma çözümüm.

Görüntü İşleme Açısından Bakış: Burada düşünüyorum çünkü ben spektrogramlar karşısında aslında görüntüler oluşturabilirim, belki bu alandan bir şey kaldırabilir miyim? Bu bölüme yakından aşina değilim, ama Hough Transform'u kullanarak bir 'çizgi' algılaması yapmak ve sonra bir şekilde çizgileri 'saymak' (ne olsa çizgiler ve lekeler değilse?) Ve oradan devam etmeye ne dersiniz ? Tabii ki bir spektrogram aldığım zaman herhangi bir noktada gördüğünüz tüm nabız s zaman ekseni boyunca kayabilir, bu önemli midir? Emin değil...

Müzik İşleme Bakış Açısı: Emin olmak için bir sinyal işleme alt kümesi, ancak sinyal-1'in, müzik proc'taki insanların her zaman gördüğü ve zaten çözdüğü belirli, belki de tekrarlayan (müzikal?) Bir kaliteye sahip olduğu benim için gerçekleşir. belki ayırt edici araçlar? Emin değilim, ama düşünce benim başıma geldi. Belki de bu duruş noktası ona bakmak için en iyi yoldur, zaman alanından bir parça almak ve bu adım oranlarını alay etmek? Yine, bu benim alanım değil, ama bunun daha önce görülmüş bir şey olduğundan çok şüpheliyim ... 3 sinyale farklı müzik aletleri türleri olarak bakabilir miyiz?

Ayrıca, eğitim verilerinin iyi bir miktarına sahip olduğumu da eklemeliyim, bu yüzden belki de bu yöntemlerden bazılarını kullanmak, daha sonra K-En Yakın Komşu'yu kullanabileceğim bazı özellik çıkarımı yapmama izin verebilir , ancak bu sadece bir düşünce.

Her neyse, şu an burada durduğum yer, herhangi bir yardım takdir.

Teşekkürler!

YORUMLARA DAYALI DÜZENLEMELER:

  • Evet, , , , önceden biliniyor. (Bazı sapmalar ama çok az. Örneğin, diyelim ki = 400 Khz, ama 401.32 Khz olarakf1f 3 f 4 f 1 f 2f2f3f4f1f2 yüzden, yüksek kıyasla 500 Khz de olabilir.) Signal- 1 HER ZAMAN bilinen 4 frekansa adım atacaktır. Sinyal-2 HER ZAMAN 1 frekansa sahip olacaktır.f2

  • Üç sinyalin sinyallerinin hepsinin nabız tekrarlama hızları ve nabız uzunlukları da önceden bilinmektedir. (Yine biraz varyans ama çok az). Yine de bazı uyarılar, sinyal tekrarlama oranları ve sinyal 1 ve 2'nin darbe uzunlukları her zaman bilinmektedir, ancak bunlar bir aralıktır. Neyse ki, bu aralıklar hiç örtüşmüyor.

  • Girdi, gerçek zamanlı olarak gelen sürekli bir zaman serisidir, ancak 1, 2 ve 3 sinyallerinin karşılıklı olarak münhasır olduğunu varsayabiliriz, böylece herhangi bir zamanda bunlardan sadece biri vardır. Ayrıca, herhangi bir zamanda işlemek için ne kadar zaman harcadığınız konusunda çok fazla esnekliğe sahibiz.

  • Veriler gürültülü olabilir evet ve bilinen f'de olmayan bantlarda sahte tonlar vb.f1f2f3f4


Girdiniz ne olacak? 1 / 1/2/3 kategorilerine sınıflandırmanız gereken tek bir sinyal tipine sahip 1/2/3 (segmentasyon + sınıflandırma sorunu) veya 2 / bireysel örnek oluşumlarını ayırmak istediğiniz sürekli akış. Sinyallerin çeşitli özelliklerini tarif edersiniz: sinyal 1'in PRT'si; sinyal 2'nin tekrarlama frekansı; sinyal 3'ün frekansı; f1 / f2 / f3 / f4 değerleri. Bu parametreler önceden veya değişken olarak biliniyor mu? Son olarak, girdinizde segmentlere giden bu sinyallerin birkaç kez meydana gelmesi durumunda, bir segmentin tipik süresi nedir?
pichenettes

Başka bir soru: çizimlerinizden saf tonlarla (harmonikler ve gürültü yok) uğraşıyormuşsunuz gibi görünüyor. Durum bu mu yoksa veriler çizimlerinizden çok mı daha kirli?
pichenettes

@pichenettes Teşekkürler, bir düzenlemeye ihtiyacınız olan bilgileri ekledim.
Spacey

Bu konudaki ilerlemenizi ve bu sorunun çözümlerini takdir edersiniz. Analiz çoğunlukla incelenen seslerin zaman değişkenliğine bağlıdır. eğer bir fft penceresinden daha hızlıysa, örneğin 256 örnek altında yüksek çözünürlüklü spektrogramlara ihtiyacınız olacaktır. Spektrogram ne kadar hassas olursa, seslerinizdeki küçük ayrıntı bilgilerini o kadar fazla görebilirsiniz. FFT muhtemelen iyidir, Bundan sonra soru basit sesleri basit rutin analiz rutinleri kullanarak sınıflandırmak için mantık operatörleri ekleme örneğidir. Bakliyatların süresini, aralarındaki mesafeyi, bütünün kordal doğasını, vb. analiz eder.
com

sadece her x çizgisinin tepe değerini kontrol ederek ana harmoniği bulmak basittir ve daha sonra, bunları retorikte analiz ediyormuşsunuz gibi ilerleyen desen imza analizi programlaması kullanarak analiz etmek için bir grafikle sonuçlanırsınız. sayı ilerlemelerini karşılaştırırken ve sınıflandırırken dikkatli bir şekilde kullandığınız en iyi farklılaştırıcıların kurallarını çizin.
com

Yanıtlar:


7

Aşama 1

S(m,k)mk

Adım 2

Her STFT çerçevesi için, YIN tarafından hesaplanan DMF "daldırma derinliği" gibi bir "adım güven" göstergesi ile birlikte YIN gibi bir şey kullanarak baskın temel frekansı hesaplayın.

diyelimf(m)mv(m)m

Verileriniz o kadar gürültülü değilse, otokorelasyonu bir perde tahmincisi olarak ve otokorelasyonun daha büyük ikincil zirvesinin oranına kullanarak uzaklaşabileceğinizi unutmayın. r0

Toplam sinyal enerjisini de hesaplayabilirsiniz.e(m)m

Aşama 3

MMM=50

Aşağıdaki özellikleri çıkarın:

  • σf(k)(f(m))m[kM,k+M],v(m)>τ
  • σv(k)(v(m))m[kM,k+M]
  • σe(k)(e(m))m[kM,k+M]

σfσvσe

σfσvσeσfσvσeσfσvσe

Egzersiz verilerinizdeki bu 3 özelliği hesaplayın ve saf bir bayes sınıflandırıcısı (sadece bir grup gauss dağılımı) eğitin. Verilerinizin ne kadar iyi olduğuna bağlı olarak, sınıflandırıcılardan bile kurtulabilir ve özellikler üzerinde elle tanımlanmış eşikler kullanabilirsiniz, ancak bunu önermiyorum.

4. Adım

M

Verileriniz ve sınıflandırmanız iyiyse, şöyle bir şey görürsünüz:

1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3

Bu, her bir sinyalin başlangıç ​​ve bitiş zamanını ve tipini oldukça iyi sınırlar.

Verileriniz gürültülü ise, yanlış sınıflandırılmış sahte çerçeveler olmalıdır:

1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 3, 2, 2, 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, 2, 3, 3, 3

İkinci durumda olduğu gibi çok fazla bok görüyorsanız, 3 veya 5 algılama mahallesindeki veriler üzerinde bir mod filtresi kullanın; veya HMM'ler kullanın.

Eve mesaj atın

Tespitinizi temel almak istediğiniz şey bir spektral özellik değil, sinyal sürelerinizle aynı ölçekte olan pencereler üzerinde spektral özelliklerin toplu zamansal istatistikleri. Bu sorun gerçekten iki zaman ölçeğinde bir işlem gerektirir: çok yerel sinyal özelliklerini (genlik, baskın perde, perde gücü) ve bu sinyal özelliklerinin zamansal değişkenliğine göz attığınız daha büyük pencereleri hesapladığınız STFT çerçevesi.


HTK veya benzerlerinden yararlanmak istiyorsanız, konuşma tanıma stilini de yapabileceğinizi unutmayın ... Akustik model: 4 telefon P1, P2, P3, P4 (f1'de ton, f2'de ton, f3'te ton, f4'te ton ) Sessizlik için + 1 sembolü S. Telefon başına 1 veya 2 gaussian. Sinyal 1 için kelime modeli W1: (P1 S P2 S P3 S P4 S) +. Sinyal 2 için kelime modeli W2: (P1 S) +. Sinyal 3 için kelime modeli W3: (P1) +. Cümle modeli: (W1 | W2 | W3) *. Tek uyarı, bir konuşma tanıma araç kutusu kullanırsanız, MFCC'ler f1 / f2 / f3 / f4'ü ayırmak için çok düşük çözünürlüklü ve zift agnostik olduğundan özellik çıkarma ön ucunu değiştirmeniz gerekecek.
Şubat'ta pichenettes

@pichenettes Teşekkürler pichenettes, bu çok iyi bir cevap - Yine de birkaç takip var: 1) Bahsettiğiniz 'YIN' nedir ve 'DMF' nedir? Google üzerinden onlara hiçbir şey bulamadım. 2) Tedbir olarak 'zift güveni' tam olarak nedir? 3) Saha güvenini bulmak için otomatik korelasyonu kullanabileceğinizden bahsediyorsunuz - neyin, zaman alanı çerçevesinin veya çerçevenin STFT'sinin otokorelasyonu? (Bunu muhtemelen anlamıyorum çünkü zift güveni ne demek istediğini bilmiyorum). (devamı ...)
Spacey

@pichenettes (devamı) 4) PENCERE BAŞINA mevcut özellikler ile ilgili olarak evet? Yani, pencere başına üç kare hesaplıyorsunuz, (bu durumda) 101 kare? Bu durumda antrenman zamanı geldiğinde, 3-D 'noktam' 101 ÇERÇEVELİ 3 stds'den yapıldı, değil mi? 5) 4. adımda, 1,1,1,2,2 vb. Numaraya sahip olduğunuzda, her sayı BU pencereyi nasıl doğru sınıflandırdığınıza karşılık gelir mi? İlk '1', -50 ila 50 çerçevelerinden oluşan pencerenin sınıflandırması ve ikinci '1', -49 ila 51 çerçevelerinden oluşan bir pencereden sınıflandırıldı, doğru mu? (Pencere her seferinde 1 kare kayar) ...
Spacey

Son olarak, bunun bir 'alarm' olarak kullanılacağından bahsetmeliydim, böylece sinyal-1 veya sinyal-2 mevcutsa, çalacak bir alarm alırım, ancak sonra hiçbir şey çalmamalı orada hiçbir şey yok - denemek ve sınıflandırmaya başlamadan önce maç hiçbir eşik olmamalı, böylece hiçbir şey üzerinde yanlış pozitif almazsınız? (örneğin arka plan gürültüsü). (Ben şimdi sadece Naive Bayes Sınıflandırıcı hakkında öğreniyorum, bu yüzden çok sınıflı olup olmadığını bilmiyorum). 7) ŞEKİLDE ÇOK TEŞEKKÜR EDER VE ÖNEMLİ TEŞEKKÜRLER! BİN VE SİZİN İÇİN BİR UPVOTES! :-)
Spacey

1
1 / YIN, konuşma ve müzik sinyalleri için klasik bir perde algılama algoritmasıdır. recherche.ircam.fr/equipes/pcm/cheveign/pss/2002_JASA_YIN.pdf . DMF, adım farkı tahmini için YIN gibi algoritmalarla hesaplanan miktar olan "fark büyüklük fonksiyonu" dur. 2 / YIN gibi bir adım algılama algoritması temel frekansın tahminini ve döndürülen adımın doğru cevap olma olasılığını gösteren bir "güven skoru" verecektir. Gürültülü sinyallerde veya birden fazla perdeye sahip sinyallerde bu düşük, saf sinüs dalgasında bu çok yüksek olacaktır.
Şubat'ta pichenettes

3

Alternatif bir yaklaşım dört heterodin detektörü olabilir: Giriş sinyalini, 4 frekanslı lokal osilatörler ve düşük geçişli filtre ile elde edilen çıkışları çarpın. Her çıktı, resminizdeki dikey çizgiyi temsil eder. Zamanın bir fonksiyonu olarak çıkışı 4 frekansın her birinde alırsınız. Düşük geçiş filtresi ile, ne kadar frekans sapmasına izin vermek istediğinizi ve ayrıca çıkışların ne kadar hızlı değişmesini istediğinizi, yani kenarların ne kadar keskin olduğunu arayabilirsiniz.

Sinyal oldukça gürültülü olsa bile bu iyi çalışır.


Bu yöntemi düşünüyordum - bu yöntemin (karıştırma ve LPF'ing) spektrogram, vb kullanarak doğrudan geçişte çalışma konusunda herhangi bir avantajı görüyor musunuz?
Spacey
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.