首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于声码器的使用

关于声码器的使用
EN

Stack Overflow用户
提问于 2022-02-01 14:20:16
回答 1查看 166关注 0票数 1

我对人工智能非常陌生,我目前正在开发一个非并行语音转换模型。我有一个令人困惑的问题,那就是投票人的使用。

所以我的模型需要Mel谱图作为输入,我正在研究的当前模型是使用MelGAN声码器(Github链接),它可以从原始wav文件(这就是我所需要的)生成220 as谱图。我最近尝试了WaveGlow声码器(PyPI链路),它也可以从原始wav文件和返回生成Mel光谱图。

但是,在其他模型中,如WaveRNNVocGANWaveGrad,对于wav到Mel光谱图的生成没有明确的解释。这些模型中的大多数不需要wav到Mel谱图功能,因为它们很大程度上满足了TTS模型的需求,比如Tacotron?或者所有这些都有这个特性,而我只是不知道呢?

如能作出澄清将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-01 23:05:31

神经编解码器如何处理音频-> mel

例如,检查MelGAN代码的这一部分:https://github.com/descriptinc/melgan-neurips/blob/master/mel2wav/modules.py#L26

具体来说,Audio2Mel模块只是使用标准方法来创建日志大小的mel谱图,如下所示:

  • 将傅里叶变换应用于输入音频的窗口,计算STFT,
  • 以产生的复杂光谱图的大小为例,
  • 将幅度谱图乘以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函数.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70942123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档