При распознавании речи внешний интерфейс обычно выполняет обработку сигналов, чтобы обеспечить извлечение признаков из аудиопотока. Дискретное преобразование Фурье (ДПФ) применяется дважды в этом процессе. Первый раз после окон; после этого применяется бин Мель, а затем другое преобразование Фурье.
Однако я заметил, что в распознавателях речи (например, во внешнем интерфейсе по умолчанию в CMU Sphinx ) обычно используется дискретное косинусное преобразование (DCT) вместо DFT для второй операции. В чем разница между этими двумя операциями? Зачем вам делать DFT в первый раз, а затем DCT во второй раз?
Ответы:
Дискретное преобразование Фурье (DFT) и Дискретное косинусное преобразование (DCT) выполняют сходные функции: они оба разлагают вектор с дискретным временем конечной длины в сумму масштабированных и сдвинутых базисных функций. Разница между ними заключается в типе базисной функции, используемой каждым преобразованием; DFT использует набор гармонически связанных комплексных экспоненциальных функций, в то время как DCT использует только (действительные) косинусные функции.
DFT широко используется для приложений общего спектрального анализа, которые находят свое применение в различных областях. Он также используется в качестве строительного блока для методов, использующих преимущества свойств представления в частотной области, таких как алгоритмы быстрой свертки с перекрытием-сохранением и сложением-наложением
DCT часто используется в приложениях сжатия данных с потерями, таких как формат изображения JPEG. Свойство DCT, которое делает его вполне пригодным для сжатия, заключается в его высокой степени «спектрального уплотнения»; на качественном уровне представление DCT сигнала имеет тенденцию концентрировать больше своей энергии в небольшом числе коэффициентов по сравнению с другими преобразованиями, такими как DFT. Это желательно для алгоритма сжатия; если вы можете приблизительно представить исходный (во временной или пространственной области) сигнал, используя сравнительно небольшой набор коэффициентов DCT, то вы можете уменьшить свои требования к хранению данных, только сохраняя выходные данные DCT, которые содержат значительные количества энергии.
источник
Я обнаружил, что некоторые подробности в вики DCT (также опубликованные Pearsonartphoto) указывают на то, что DCT хорошо подходит для приложений сжатия. Конец раздела Неофициальный обзор полезен (жирный шрифт мой).
Кроме того, вы можете обнаружить, что этот ответ тоже полезен (с сайта math.stackexchange.com). Говорится:
источник
Причина, по которой вы видите, что преобразование Фурье применяется два раза в процессе извлечения объектов, заключается в том, что функции основаны на концепции, называемой кепстр. Кепстр представляет собой игру в слове «спектр». По сути, идея состоит в том, чтобы преобразовать сигнал в частотную область с помощью преобразования Фурье, а затем выполнить другое преобразование, как если бы частотный спектр был сигналом.
В то время как частотный спектр описывает амплитуду и фазу каждой полосы частот, кепстр характеризует изменения между полосами частот. Обнаружено, что признаки, полученные из кепстра, лучше описывают речь, чем признаки, взятые непосредственно из частотного спектра.
Есть несколько немного разных определений. Первоначально преобразование кепстра было определено как преобразование Фурье -> комплексный логарифм -> преобразование Фурье [1]. Другое определение - преобразование Фурье -> комплексный логарифм -> обратное преобразование Фурье [2]. Мотивация последнего определения заключается в его способности разделять свернутые сигналы (человеческая речь часто моделируется как свертка возбуждения и голосового тракта).
Популярный выбор, который, как было установлено, хорошо работает в системах распознавания речи, состоит в том, чтобы применять банк нелинейных фильтров в частотной области (преобразование mel, на которое вы ссылаетесь) [3]. Конкретный алгоритм определяется как преобразование Фурье -> квадрат величины -> банк фильтров Мел -> реальный логарифм -> дискретное косинусное преобразование.
Здесь DCT может быть выбран в качестве второго преобразования, потому что для вещественного ввода действительная часть DFT является разновидностью DCT. Причина, по которой DCT является предпочтительным, заключается в том, что выходной сигнал приблизительно декоррелирован. Декоррелированные элементы могут быть эффективно смоделированы как гауссово распределение с диагональной ковариационной матрицей.
[1] Богерт Б., Хили М. и Тьюки Дж. (1963). Четверичный аланиз по временным рядам для эхо-сигналов: кепстр, псевдо-автоковариация, кросс-кепстр и крекинг по Сафе. В материалах симпозиума по анализу временных рядов, с. 209-243.
[2] Оппенгейм А. и Шафер Р. (1968). Гомоморфный анализ речи. В IEEE Труды по аудио и электроакустике 16, p. 221-226.
[3] Дэвис С. и Мермельштейн П. (1980). Сравнение параметрических представлений для односложного распознавания слов в высказываемых предложениях. В транзакциях IEEE по акустике, обработке речи и сигналов 28, p. 357-366.
источник
Разница между дискретным преобразованием Фурье и преобразованием дискретного косинуса заключается в том, что DCT использует только действительные числа, в то время как преобразование Фурье может использовать комплексные числа. Наиболее распространенным применением DCT является сжатие. Это эквивалентно БПФ двойной длины.
источник