如何从梅尔频谱图转换 wav(音频)文件?
How to convert wav (audio) file from mel spectrogram?
我正在处理音频 ML 问题。我可以使用 tensorflow 的 this 文档将给定的音频从 WAV 转换为 MEL-Spectogram。
我的用例基本上比这多了一步。有了梅尔频谱图后,我想从中重建音频文件。简单的说,spectrogram to wav conversion.
有谁能帮帮我吗?
我找到了一个有效的解决方案,正如@ForamJ 在评论中所建议的那样,但是我花了 30 分钟来转换 1 分钟的音频。
# step1 - converting a wav file to numpy array and then converting that to mel-spectrogram
my_audio_as_np_array, my_sample_rate= librosa.load("audio1.wav")
# step2 - converting audio np array to spectrogram
spec = librosa.feature.melspectrogram(y=my_audio_as_np_array,
sr=my_sample_rate,
n_fft=2048,
hop_length=512,
win_length=None,
window='hann',
center=True,
pad_mode='reflect',
power=2.0,
n_mels=128)
# step3 converting mel-spectrogrma back to wav file
res = librosa.feature.inverse.mel_to_audio(spec,
sr=my_sample_rate,
n_fft=2048,
hop_length=512,
win_length=None,
window='hann',
center=True,
pad_mode='reflect',
power=2.0,
n_iter=32)
# step4 - save it as a wav file
import soundfile as sf
sf.write("test1.wav", res, sashi_sr)
我正在处理音频 ML 问题。我可以使用 tensorflow 的 this 文档将给定的音频从 WAV 转换为 MEL-Spectogram。
我的用例基本上比这多了一步。有了梅尔频谱图后,我想从中重建音频文件。简单的说,spectrogram to wav conversion.
有谁能帮帮我吗?
我找到了一个有效的解决方案,正如@ForamJ 在评论中所建议的那样,但是我花了 30 分钟来转换 1 分钟的音频。
# step1 - converting a wav file to numpy array and then converting that to mel-spectrogram
my_audio_as_np_array, my_sample_rate= librosa.load("audio1.wav")
# step2 - converting audio np array to spectrogram
spec = librosa.feature.melspectrogram(y=my_audio_as_np_array,
sr=my_sample_rate,
n_fft=2048,
hop_length=512,
win_length=None,
window='hann',
center=True,
pad_mode='reflect',
power=2.0,
n_mels=128)
# step3 converting mel-spectrogrma back to wav file
res = librosa.feature.inverse.mel_to_audio(spec,
sr=my_sample_rate,
n_fft=2048,
hop_length=512,
win_length=None,
window='hann',
center=True,
pad_mode='reflect',
power=2.0,
n_iter=32)
# step4 - save it as a wav file
import soundfile as sf
sf.write("test1.wav", res, sashi_sr)