我对人工智能非常陌生,我目前正在开发一个非并行语音转换模型。我有一个令人困惑的问题,那就是投票人的使用。
所以我的模型需要Mel谱图作为输入,我正在研究的当前模型是使用MelGAN声码器(Github链接),它可以从原始wav文件(这就是我所需要的)生成220 as谱图。我最近尝试了WaveGlow声码器(PyPI链路),它也可以从原始wav文件和返回生成Mel光谱图。
但是,在其他模型中,如WaveRNN,VocGAN,WaveGrad,对于wav到Mel光谱图的生成没有明确的解释。这些模型中的大多数不需要wav到Mel谱图功能,因为它们很大程度上满足了TTS模型的需求,比如Tacotron?或者所有这些都有这个特性,而我只是不知道呢?
如能作出澄清将不胜感激。
发布于 2022-02-01 23:05:31
神经编解码器如何处理音频-> mel
例如,检查MelGAN代码的这一部分:https://github.com/descriptinc/melgan-neurips/blob/master/mel2wav/modules.py#L26
具体来说,Audio2Mel模块只是使用标准方法来创建日志大小的mel谱图,如下所示:
librosa获得了这个矩阵!关于混乱
你的困惑可能源于这样一个事实,即“深度学习”论文的作者通常只意味着他们对音频的“译码器”,当他们谈论“声音编码者”--音频到梅尔部分--总是或多或少地相同。我说这可能令人困惑,因为据我所知,“声码器”一词的经典含义包括编码器和解码器。
不幸的是,这些方法并不总是完全以相同的方式工作,例如创建mel滤波器矩阵的不同方法、不同的填充约定等等。
例如,librosa.stft有一个center参数,它将在应用STFT之前填充音频,而tensorflow.signal.stft没有这个参数(它需要事先手动填充)。
创建mel过滤器的不同方法的一个例子是librosa.filters.mel中的librosa.filters.mel参数,它在"HTK“方法和"Slaney”之间切换。同样,以Tensorflow为例,tf.signal.linear_to_mel_weight_matrix不支持这个参数,并且总是使用HTK方法。不幸的是,我不熟悉torchaudio,所以我不知道您是否也需要小心。
最后,当然还有许多参数,如STFT窗口大小、跳长、mel滤波器覆盖的频率等,并且更改这些参数相对于引用实现可能影响结果。由于不同的代码存储库可能使用稍微不同的参数,我想您的问题的答案是“每个方法都会以相同的方式执行操作(创建mel谱图)吗?”就是“不太”在一天结束后,你将不得不满足于一组参数,不管是哪种方式.
奖励:为什么这些都只是解码器和编码器总是一样的?
梅尔->音频的方向是艰难的。即使是Mel -> (“正常”)光谱图也没有很好的定义,因为向mel光谱的转换是有损的,不能倒置。最后,转换谱图为音频是困难的,因为相位需要估计。您可能熟悉Griffin这样的方法(同样,librosa有它,这样您就可以试用它)。它们产生噪音低质量的音频.因此,本文的研究重点是利用强大的模型对这一过程进行改进。
另一方面,音频-> Mel是简单,良好的定义和快速.没有必要定义“自定义编码器”。
现在,一个完全不同的问题是,mel谱图是否是一种“好”编码。使用变分自动编码器之类的方法,您也许可以找到更好的(例如,更紧凑、更少损耗)音频编码。这些将包括自定义编码器和解码器,你将不会逃脱标准的librosa函数.
https://stackoverflow.com/questions/70942123
复制相似问题