python Тензор потока обработки сигналов MF CC Особенности - PullRequest
0 голосов
/ 02 марта 2020

Я тестирую функцию MF CC из реализации тензорного потока. Согласно примеру (https://www.tensorflow.org/api_docs/python/tf/signal/mfccs_from_log_mel_spectrograms), он вычисляет все 80 МФЦ, а затем берет первые 13.

Я пробовал оба выше и подход "вычислить первые 13 напрямую" и результат сильно отличается:

Сначала все 80, затем сначала 13: enter image description here

Вычислите первые 13 напрямую: flow

Почему большая разница, и какую мне следует использовать, если я передаю эту функцию как CNN или RNN?

1 Ответ

1 голос
/ 03 марта 2020

Это из-за природы MF CC. Помните, что эти коэффициенты рассчитываются в диапазоне частот по шкале плавления, которую вы вводите через lower_edge_hertz и upper_edge_hertz в связанном коде.

Что это означает на практике:

  • «Вычислить 13 коэффициентов напрямую»: взять диапазон частот [80.0, 7600.0] и разделить его на 13 бинов. В конце концов, вы получите 13 коэффициентов, которые отражают амплитуды соответствующего спектра (см. MF CC алгоритм )

  • «Сначала все 80, затем первые 13» : возьмите частотный диапазон [80.0, 7600.0] и разделите его на 80 бинов. Теперь возьмем только первые 13 коэффициентов. На практике это означает, что вы смотрите на очень узкий и мелкозернистый спектр, в данном случае примерно в диапазоне частот человеческой речи [80, 400] Гц (грубо говоря, за пределами расчетов огибающей). Имеет смысл, если вы увлекаетесь распознаванием человеческой речи, поскольку вы можете сосредоточиться на более тонких вариациях, игнорируя при этом спектр более высоких частот (это менее интересно с точки зрения нашей аудиосистемы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...