Vraag Guitar Chord Recognition Algorithm?


Wat is een goed algoritme voor digitale signaalverwerking dat goed is voor gitaarakkoorden? Sinds Fast Fourier Transform denk ik dat het alleen klopt op losse tonen die op de gitaar worden gespeeld, maar niet op noten die simultaan (dat wil zeggen akkoorden) worden gespeeld.

Bedankt!


38
2017-10-27 12:22


oorsprong


antwoorden:


Het korte antwoord is dat je veel meer dan één algoritme nodig hebt. Goede akkoordherkenningsmethoden zouden beter kunnen worden beschreven als "systemen", maar meestal zijn ze inderdaad gebaseerd op een eerste transformatie naar het frequentiedomein (meestal DFT).

Als u een akkoordrepresentatie van het vergelijkbare nummer wilt

C G Am F7 F6 C ...

dan is dit eigenlijk een probleem dat iets verwijderd is van het herkennen van de noten in een stuk audio. In feite zijn er (grosso modo) twee problemen:

  1. het vinden van welke plaatsen op elk moment aanwezig zijn
  2. deze pitches in de loop van de tijd groeperen om een ​​akkoordlabel aan een tijdsinterval toe te wijzen.

Het blijkt dat de manier waarop je transformeert van het tijdsdomein (normale audio) naar het frequentiedomein (spectrale representatie) slechts van beperkt belang is. Het is erg belangrijk wat u achteraf doet en vaak worden geavanceerde probabilistische modellen (vergelijkbaar met die in spraakherkenning: HMM's, DBN's, ...) gebruikt om dit probleem aan te pakken.

Probeer google-geleerde 'akkoordtranscriptie' of 'akkoorddetectie' of 'akkoordlabels' voor geavanceerd onderzoek op dit gebied.

De meeste van deze benaderingen gebruiken een discrete Fourier-transformatie (DFT) om het initiële spectrogram te creëren. Ook tijdens de verdere verwerking lijken ze slechts in geringe mate van elkaar te verschillen, hoewel verschillende tijdreekstechnieken zijn toegepast: verborgen Markov-modellen, dynamische Bayesiaanse netwerken, ondersteunende vectormachines (SVMstruct) en voorwaardelijke willekeurige velden - onder andere. De meest geavanceerde transcribeerders gebruiken automatische afstemming, belangrijke informatie, basnootinformatie en informatie over de metrische positie om de resultaten te verbeteren. Mijn scriptie (Hoofdstuk 2) geeft een mooi overzicht.

Open-source akkoord detectie algoritmen:

Ik hoop dat dit helpt.


67
2017-12-14 00:47



Welnu, je kunt een andere set algoritmen uitproberen voor frequentiedomein, zoals wavelets. Maar ik weet niet zeker of dat zal doen voor uw nauwkeurigheidsprobleem. Eigenlijk begreep ik niet op welke manier je problemen hebt met de FFT. Het zal altijd een benadering van het akkoord zijn, er is geen perfecte manier om dat soort informatie over geluid op te halen.

Het hangt dus af van de analyse die je op dat spectrum uitvoert, met enkele tonen, er zijn eigenlijk veel betere algoritmen dan de FFT, maar met akkoorden zul je heel waarschijnlijk met FFT moeten werken.

Het probleem dat je zult moeten oplossen, is dat je de fundamentele harmonischen van de bovenste harmonischen opsplitst, een ding dat kan helpen is alleen rekening te houden met frequenties die op het gitaarbereik liggen. Als je alleen met gitaargeluiden moet werken, moet je de tijd nemen om de normale frequentiedomeingrafiek van de gitaar te bestuderen en die proberen te gebruiken om je nauwkeurigheid te verbeteren.


3
2017-11-05 17:34



De FFT kan en zal je alle enkele tonen geven als je de software correct instelt. Het hele punt van de FFT is om tonen te onderscheiden, of als je een astrofysicus bent, wil je de individuele elementen (zwakker, waterstof ...) kennen die in het licht van de ster komen.

Harmonics zijn geen probleem omdat ze minder 'power' hebben dan de fundamentele frequentie, bijvoorbeeld C = 440Hz, maar C = 880Hz ook, maar 880 is de kleinere piek in de FFT-resultaten.


2
2018-02-24 14:59



Er zijn enkele redelijk succesvolle tools die de DFT (FFT) gebruiken, maar ze doen veel verwerking na het berekenen van de DFT.

Proberen deze link voor een samenvatting van de huidige stand van de techniek, of google "Chordino" of "Chordata" voor algoritmen voor open-sourcekeuvingsextractie.


2
2017-12-01 11:37



Er is een wedstrijd tussen wetenschapper waar mensen verschillende parameters van muziek proberen te analyseren. Een van de onderdelen van deze wedstrijd is akkoordherkenning. Deze wedstrijd is openbaar zodat iedereen eraan kan deelnemen en de resultaten op dit gebied kan tonen. De resultaten van het jaar 2011 worden gepubliceerd hier.

Een vriend van mij heeft goede resultaten geboekt op dit gebied (en ook in deze wedstrijd). Je kunt lezen over zijn aanpak op de zijne webpagina.


1
2017-09-14 15:08