Передискретизация речевого сигнала является широко используемым методом обработки речевого сигнала. Многие алгоритмы обработки речевого сигнала поддерживают только одну или две частоты дискретизации. y частота дискретизации. Передискретизация делится на повышающую и понижающую. Принцип реализуется интерполяцией. Обычно используемые методы интерполяции включают прямую интерполяцию, лагранжеву интерполяцию и синусоидальную интерполяцию, которые будут представлены отдельно ниже.
1. Direction Interpolation
Основная идея прямой интерполяции заключается в аппроксимации интерполируемых точек с помощью линии, проходящей через две фиксированные точки. Мы предполагаем, что длина исходной речи x равна N, частота дискретизации равна L, длина речи после повторной дискретизации y равна K, а частота дискретизации равна M. Тогда для каждой точки k в y можно найти соответствующую точку nk в x, т.е.
где L/M называется масштабным коэффициентом, а затем мы берем точку n, смежную с nk,
придать им разный вес
Наконец, возьмите их взвешенную сумму как значение y[k] в это время, то есть
Таким образом, интерполяция завершается, и описанная выше операция выполняется для каждого момента y, и весь процесс передискретизации завершается.
2. Lagrange Interpolation
Прямая интерполяция проста и груба, но простые алгоритмы часто работают плохо.Алгоритм прямой интерполяции является линейным, и эффект интерполяции не очень хорош при некоторых условиях. Поскольку период дискретизации речевого сигнала одинаков, естественно подумать о применении метода лагранжевой интерполяции к повторной дискретизации речи. Метод лагранжевой интерполяции заключается в использовании интерполяционного полинома Лагранжа для оценки значения точки интерполяции Предыдущую прямую интерполяцию можно рассматривать как простой случай лагранжевой интерполяции. На основе прямой интерполяции лагранжева интерполяция в формуле расчета интерполяции передискретизации имеет вид
Где w — длина окна, то можно знать, что порядок полинома Лагранжа равен 2w+1, то есть для вычисления этой точки интерполяции используется 2w+1 точка дискретизации исходных данных. Для формулы (5) если только коэффициенты перед x[n-i]
Можно найти, что при стремлении w к бесконечности
Это синусоидальная интерполяция, которую мы рассмотрим позже.
3. Sine Interpolation
Было много предвестников синусоидальной интерполяции, и здесь непосредственно приводится расчетная формула интерполяции.
После повторной выборки лучше всего использовать фильтр нижних частот для фильтрации избыточных частотных составляющих, особенно в случае понижения частоты дискретизации.
4. Повторная выборка результатов
Образец выбирается случайным образом из TIMIT, частота дискретизации составляет 16 кГц, и он передискретизируется до 8 кГц и 32 кГц ниже. Сначала посмотрите на временные затраты трех методов.Можно обнаружить, что временные затраты лагранжевой интерполяции являются самыми большими, за ними следует синусоидальная интерполяция, а время прямой интерполяции является наименьшим.
Наконец, посмотрите на спектрограмму: спектрограмма resample_test.wav
upsample_Direct.wav Спектрограмма
downsample_Direct.wav Спектрограмма
Данные и код Python, относящиеся к этой статье, можно получить, нажав ->Дополнительно ->Код->Речевые алгоритмы->Пересэмплировать в строке меню официального аккаунта Группы речевых алгоритмов.
использованная литература:
[1]. Speech signal resampling by arbitrary rate