简体   繁体   English

如何从梅尔频谱图转换 wav(音频)文件?

[英]How to convert wav (audio) file from mel spectrogram?

I am working on an audio ML problem.我正在研究音频 ML 问题。 I am able to convert a given audio from WAV to MEL-Spectogram using tensorflow's this document.我可以使用 tensorflow 的文档将给定的音频从 WAV 转换为 MEL-Spectogram。

My usecase is basically one step more than this.我的用例基本上比这多了一步。 Once I have a mel-spectrogram, I want to reconstruct the audio file from it.有了梅尔频谱图后,我想从中重建音频文件。 Put it simply, spectrogram to wav conversion.简单点说,spectrogram to wav conversion。

Could any one please help me?任何人都可以帮助我吗?

I found a solution that works, as suggested by @ForamJ in the comment, however it took me 30mins to convert 1min audio.正如@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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将梅尔频谱图转换为对数比例的梅尔频谱图 - How to convert a mel spectrogram to log-scaled mel spectrogram 如何在python3中将.wav文件转换为频谱图 - How to convert a .wav file to a spectrogram in python3 一个wav音频文件的情节谱图 - Plot Spectrogram of a wav audio file 如何从文件夹和子文件夹中保存音频文件 (.wav) 的频谱图? - How can i save spectrogram of audio file (.wav) from folders and sub-folders? 如何从梅尔频谱图计算“归一化”频率? - How to compute “normalized” frequency from Mel Spectrogram? 如何从 librosa 中的梅尔频谱图重建 STFT 矩阵,以便重建原始音频? - How can I reconstruct the STFT matrix from a mel spectrogram in librosa so I reconstruct the original audio? Librosa - 如何为立体声音频创建梅尔谱图? - Librosa - How to create mel-spectrogram for stereophonic audio? 如何根据音频文件的分解频谱图计算实际频谱图? - How to compute actual spectrogram from decomposed spectogram of an audio file? 保存音频文件的梅尔频谱图而不显示其代表图 - Save mel spectrogram of audio files without displaying their repsective plots 如何将 wav 音频文件格式(样本宽度)转换为 8 位格式? - How to convert a wav audio file format (sample width) into 8 bits format?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM