Welche Eingabe soll für ein AR-Modell eines Vokaltons verwendet werden?

8

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 arFunktion 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?

Geben Sie hier die Bildbeschreibung ein

Andreas
quelle
1
Zu Ihrer Information, am Ende habe ich den Impulszug so skaliert, dass seine Signalenergie (gemessen im Zeitbereich) mit der des aufgezeichneten Signals übereinstimmt.
Andreas

Antworten:

5

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 .

hotpaw2
quelle
Vielen Dank. Wie soll ich die Impulsamplitude wählen?
Andreas
4

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.

Schnarf
quelle
Dank euch beiden werde ich diese Tonhöhenmelder überprüfen. Wie kann ich nach der Schätzung der Periode herausfinden, welche Amplitude für die Impulsfolge geeignet ist?
Andreas