使用librosa函数将频谱图转换为音频

时间:2019-09-17 04:45:03

标签: python audio spectrogram librosa

我正在研究语音合成,并且已经使用librosa构建了声谱图。当我想将频谱图转换为音频以另存为wav文件时,会产生问题。我寻求帮助,发现liborsa有一个函数mel_to_audio,但是它不起作用。

我使用此功能来获取音频文件的频谱图。

librosa.feature.melspectrogram

这是我用来将频谱图转换为音频的功能。

librosa.feature.inverse.mel_to_audio

但是我收到此错误。

ModuleNotFoundError: No module named 'librosa.feature.inverse'

这就是我使用librosa读取文件的方式。

def read_audio_from_filename(filename):
    audio, sr = librosa.load(filename)
    D = np.abs(librosa.stft(audio))**2
    audio= librosa.feature.melspectrogram(y=audio, sr=sr, S=D)
    return audio

还有其他方法可以将mel转换为音频并将其另存为wav文件吗?帮助将不胜感激。

最小示例

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)
    D = np.abs(librosa.stft(audio))**2
    audio= librosa.feature.melspectrogram(y=audio, sr=sr, S=D)
    return audio
def convert_data():
    wav_filename = "Audio/Audio1.wav"
    audio = read_audio_from_filename(wav_filename)
    return audio
specto = convert_data()
res = librosa.feature.inverse.mel_to_audio(specto)

这是错误。

AttributeError: module 'librosa.feature' has no attribute 'inverse'

2 个答案:

答案 0 :(得分:0)

您的代码对我有用,没有错误。我建议使用干净的miniconda环境重新安装librosa的最新版本:

conda install -c conda-forge librosa

另请参阅librosa installation instructions

答案 1 :(得分:0)

模块librosa.feature.inverse在版本0.7中引入。如果通过conda安装librosa,但没有最新版本的conda,则将安装版本0.6。

一个快速修复方法是通过pip安装librosa。