python TypeError:mel()接受0个位置参数,但给出了5个

jdgnovmf  于 2023-05-05  发布在  Python
关注(0)|答案(2)|浏览(1077)

当我在Tacotron训练笔记本上的时候,我得到了一个错误信息,上面写着这样的话。Traceback (most recent call last) <ipython-input-10-df8aeedb909f> in <module> 2 3 if generate_mels: ----> 4 create_mels()TypeError: mel() takes 0 positional arguments but 5 were given.有人能给予我一个解决方案吗?
我尝试添加self来创建mels,但失败了。更新:我从转换WAVS到Mel频谱图部分复制了完整的代码。

def create_mels():
    print("Generating Mels")
    stft = layers.TacotronSTFT(
                hparams.filter_length, hparams.hop_length, hparams.win_length,
                hparams.n_mel_channels, hparams.sampling_rate, hparams.mel_fmin,
                hparams.mel_fmax)
    def save_mel(filename):
        audio, sampling_rate = load_wav_to_torch(filename)
        if sampling_rate != stft.sampling_rate:
            raise ValueError("{} {} SR doesn't match target {} SR".format(filename, 
                sampling_rate, stft.sampling_rate))
        audio_norm = audio / hparams.max_wav_value
        audio_norm = audio_norm.unsqueeze(0)
        audio_norm = torch.autograd.Variable(audio_norm, requires_grad=False)
        melspec = stft.mel_spectrogram(audio_norm)
        melspec = torch.squeeze(melspec, 0).cpu().numpy()
        np.save(filename.replace('.wav', ''), melspec).

这些信息还不够吗?

o7jaxewo

o7jaxewo1#

我下载了另一个版本的librosa,现在它对我有效。它给出了一个错误,因为最新版本0.10。不再接受争论了pip install "librosa=0.9.1"

e0bqpujr

e0bqpujr2#

更新对mel()的调用以包含参数名称:
例如mel = librosa_mel_fn(sr=sampling_rate, n_fft=n_fft, n_mels=num_mels, fmin=fmin, fmax=fmax)
而不是:mel = librosa_mel_fn(sampling_rate, n_fft, num_mels, fmin, fmax)

相关问题