Добрый день. Написал такой код.
import librosa
import librosa.display
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def read_audio_from_filename(filename):
audio, sr = librosa.load(filename, sr = None)
print(sr)
D = np.abs(librosa.stft(audio))**2
audio= librosa.feature.melspectrogram(y=audio, sr=sr, S=D)
return audio
def convert_data():
wav_filename = "path"
audio = read_audio_from_filename(wav_filename)
return audio
specto = convert_data()
res = librosa.feature.inverse.mel_to_audio(specto)
sf.write('path-1', res, 44100, 'PCM_24')
ipd.display(ipd.Audio('path'))
ipd.display(ipd.Audio('path-1'))
Также я заметил, что len(res) и len(audio) различаются. Это очевидно, искажает аудио, может вся проблема и только в этом. Как это исправить?
В первой функции я вывожу sr, который мне предлагает библиотека, этим же sr я восстанавливаю аудио в конце, но звук различается. Как исправить? Спасибо.