Ich habe eine 2-sekündige Aussprache eines Vokals aufgenommen. Die ersten 0,12 Sekunden des Signals sind unten gezeigt.
Jetzt habe ich ein Auto-Regressive-Modell 8. Ordnung konstruiert, um dieses Signal zu komprimieren. (Eigentlich modelliere ich nur 160 Abtastwerte oder jeweils 0,02 Sekunden.) Die ar
Funktion in der System Identification Toolbox von Matlab kann die Parameter für eine "optimale" Spektrumanpassung schätzen.
Mein Problem ist die Auswahl der stochastischen Eingabe für den Modellfilter. Ich nehme an, es gibt etwas Besseres als weißes Rauschen. Die Periodizität (14 Perioden pro 0,02 Sekunden) lässt mich denken, dass ein Impulszug mit derselben Periode geeignet wäre.
Wenn ja, wie würde ich die Amplitude wählen und wie würde ich die Periodizität finden? ACF- und PSD-Schätzungen sind ziemlich verrauscht. Bin ich überhaupt auf dem richtigen Weg?
Antworten:
Ein Tonhöhenschätzer wird üblicherweise verwendet, um die Stimmperiodizität zu ermitteln. Zu den gängigen Tonhöhenschätzern gehören die Cepstrum / Cepstral-Analyse, das harmonische Produktspektrum und zusammengesetzte Algorithmen wie YAAPT .
quelle
Ich denke, Ihre beste Wahl ist der in diesem Artikel beschriebene "YIN" -Pechendetektor: http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf . Es ist ziemlich einfach und funktioniert sehr gut. Sie präsentieren es in Schritten oder Verbesserungen gegenüber der vorherigen Idee, und es sollte ausreichen, nur die ersten Schritte zu implementieren.
Die meisten tatsächlich verwendeten Tonhöhenmelder beziehen sich auf die Autokorrelation. Das größte Problem bei den meisten Tonhöhenerkennungsalgorithmen sind Oktavfehler - entweder beim Erkennen einer niedrigeren oder einer höheren Tonhöhe. Es ist interessant, dass Sie sagen, Ihre Autokorrelationsfunktion sei verrauscht. Sie sollten eine Reihe von Rauschen sehen, mit Spitzen bei ganzzahligen Vielfachen und Teilern der Grundfrequenz. Hoffentlich hat die Tonhöhenverzögerung, die der Grundfrequenz entspricht, den größten Wert, aber oft liegt sie bei einer Suboktave (weil die Signale nicht perfekt periodisch sind) oder bei einer höheren Oktave (weil ein starker Formante eine der höheren verursacht) Oberschwingungen, um wirklich laut zu sein). Ich würde eine Fenstergröße empfehlen, die ungefähr so groß ist wie zwei Ihrer niedrigstmöglichen Tonhöhenperioden.
Dieses Signal sieht auch so aus, als hätte es eine sehr niederfrequente Komponente - Sprache bewegt sich normalerweise nicht so auf und ab. Ich könnte empfehlen, es beispielsweise mit einem 24-dB / Okt-Hochpassfilter bei etwa 50 Hz zu verarbeiten.
quelle