Реконструкция аудио из melspectrogram имеет некоторые ограничения с помощью librosa - PullRequest
0 голосов
/ 23 февраля 2020

Я делаю:


    melspectrogram = librosa.feature.melspectrogram(
        y=samples, sr=sample_rate, window=scipy.signal.hanning, n_fft=n_fft, hop_length=hop_length)

    print('melspectrogram.shape', melspectrogram.shape)
    print(melspectrogram)

    audio_signal = librosa.feature.inverse.mel_to_audio(
        melspectrogram, sr=sample_rate, n_fft=n_fft, hop_length=hop_length, window=scipy.signal.hanning)
    print(audio_signal, audio_signal.shape)

    sf.write('test.wav', audio_signal, sample_rate)

И восстановленный файл wav звучит очень похоже на оригинал, но имеет некоторые небольшие ограничения и аудио-артефакты. Есть ли способ восстановить более идеально?

1 Ответ

1 голос
/ 24 февраля 2020

В документации говорится о mel_to_audio:

Это в первую очередь удобная оболочка для:

S = librosa.feature.inverse.mel_to_stft(M)
y = librosa.griffinlim(S)

Другими словами сгенерированная спектрограмма Mel используется для аппроксимации величины STFT. Затем спектрограмма STFT преобразуется обратно во временную область с использованием алгоритма Griffin Lim .

Преобразование из спектрограммы Mel в STFT не является полностью без потерь (могут быть перекрывающиеся частотные диапазоны из-за перекрывающиеся три angular фильтры , используемые при построении спектрограммы Мела), и преобразование из спектрограммы звездной величины STFT во временную область (т. Е. В аудио), безусловно, не является совершенным, поскольку спектрограмма магнитуд STFT имеет отсутствует информация о фазе, которая должна быть аппроксимирована с использованием алгоритма Гриффина Лима. Это приближение никогда не бывает идеальным и вводит фазовые артефакты (metalli c "phasiness").

Не использование шкалы Mel, а просто использование STFT и обратного STFT приводит к гораздо лучшим результатам. Однако, как только вы начнете манипулировать чем-либо в частотной области до инверсии, вы столкнетесь с аналогичными проблемами, но, вероятно, не такими большими, как при использовании спектрограммы Mel.

...