Pitch detectie algoritme - Pitch detection algorithm
Een toonhoogtedetectie-algoritme ( PDA ) is een algoritme dat is ontworpen om de toonhoogte of grondfrequentie van een quasiperiodiek of oscillerend signaal te schatten , meestal een digitale opname van spraak of een muzieknoot of toon. Dit kan in het tijdsdomein , het frequentiedomein of beide.
PDA's worden in verschillende contexten gebruikt (bijv. fonetiek , het ophalen van muziekinformatie , spraakcodering , muziekuitvoeringssystemen ) en daarom kunnen er verschillende eisen aan het algoritme worden gesteld. Er is nog geen enkele ideale PDA, dus er bestaat een verscheidenheid aan algoritmen, waarvan de meeste grofweg in de onderstaande klassen vallen.
Een PDA schat typisch de periode van een quasiperiodiek signaal en keert die waarde vervolgens om om de frequentie te geven.
Algemene benaderingen
Een eenvoudige benadering zou zijn om de afstand tussen nuldoorgangspunten van het signaal te meten (dwz de nuldoorgangssnelheid ). Dit werkt echter niet goed bij gecompliceerde golfvormen die zijn samengesteld uit meerdere sinusgolven met verschillende perioden of gegevens met ruis. Toch zijn er gevallen waarin nuldoorgang een nuttige maatregel kan zijn, bijvoorbeeld in sommige spraaktoepassingen waarbij uitgegaan wordt van één enkele bron. De eenvoud van het algoritme maakt het "goedkoop" om te implementeren.
Meer geavanceerde benaderingen vergelijken segmenten van het signaal met andere segmenten gecompenseerd door een proefperiode om een match te vinden. AMDF ( gemiddelde magnitudeverschilfunctie ), ASMDF (Average Squared Mean Difference Function) en andere vergelijkbare autocorrelatie- algoritmen werken op deze manier. Deze algoritmen kunnen vrij nauwkeurige resultaten geven voor zeer periodieke signalen. Ze hebben echter valse detectieproblemen (vaak " octaaffouten "), kunnen soms slecht omgaan met ruisende signalen (afhankelijk van de implementatie), en - in hun basisimplementaties - kunnen ze niet goed omgaan met polyfone geluiden (waarbij meerdere muzieknoten van verschillende plaatsen).
De huidige algoritmen voor het detecteren van toonhoogte in het tijdsdomein hebben de neiging voort te bouwen op de hierboven genoemde basismethoden, met aanvullende verfijningen om de prestaties meer in overeenstemming te brengen met een menselijke beoordeling van toonhoogte. Het YIN-algoritme en het MPM-algoritme zijn bijvoorbeeld beide gebaseerd op autocorrelatie .
Frequentie-domein benaderingen
Frequentiedomein, polyfone detectie is mogelijk, meestal met behulp van het periodogram om het signaal om te zetten in een schatting van het frequentiespectrum . Dit vereist meer verwerkingskracht naarmate de gewenste nauwkeurigheid toeneemt, hoewel de bekende efficiëntie van de FFT , een belangrijk onderdeel van het periodogram- algoritme, het geschikt maakt voor vele doeleinden.
Populaire algoritmen voor het frequentiedomein omvatten: het harmonische productspectrum ; cepstrale analyse en maximale waarschijnlijkheid waarmee wordt geprobeerd de kenmerken van het frequentiedomein af te stemmen op vooraf gedefinieerde frequentiekaarten (handig voor het detecteren van de toonhoogte van instrumenten met een vaste stemming); en de detectie van pieken als gevolg van harmonische reeksen.
Om de toonhoogteschatting die is afgeleid van het discrete Fourier-spectrum te verbeteren, kunnen technieken zoals spectrale hertoewijzing (op basis van fase) of Grandke-interpolatie (gebaseerd op magnitude) worden gebruikt om verder te gaan dan de precisie die wordt geboden door de FFT-bins. Een andere op fasen gebaseerde benadering wordt aangeboden door Brown en Puckette
Spectrale/temporele benaderingen
Spectrale/temporele toonhoogtedetectiealgoritmen, bijv. de YAAPT-pitchtracking, zijn gebaseerd op een combinatie van tijdsdomeinverwerking met behulp van een autocorrelatiefunctie zoals genormaliseerde kruiscorrelatie, en frequentiedomeinverwerking met gebruikmaking van spectrale informatie om de toonhoogte te identificeren. Vervolgens kan, onder de kandidaten geschat op basis van de twee domeinen, een laatste pitch-track worden berekend met behulp van dynamisch programmeren . Het voordeel van deze benaderingen is dat de tracking error in het ene domein kan worden verminderd door het proces in het andere domein.
Spraaktoondetectie
De grondfrequentie van spraak kan variëren van 40 Hz voor lage stemmen tot 600 Hz voor hoge stemmen.
Autocorrelatiemethoden hebben ten minste twee toonhoogteperioden nodig om toonhoogte te detecteren. Dit betekent dat om een grondfrequentie van 40 Hz te detecteren, minimaal 50 milliseconden (ms) van het spraaksignaal moeten worden geanalyseerd. Gedurende 50 ms hoeft spraak met hogere grondfrequenties echter niet noodzakelijkerwijs dezelfde grondfrequentie door het hele venster te hebben.
Zie ook
- Automatisch afstemmen
- Beat detectie
- Frequentie schatting:
- Lineaire voorspellende codering
- MUZIEK (algoritme)