gpt4 book ai didi

javascript - 带音色控制的 JS 音高变换

转载 作者:行者123 更新时间:2023-12-03 00:40:56 25 4
gpt4 key购买 nike

我的项目需要一个好的变调解决方案来改变声音。有很多变调 js 库 - 都尝试过,但它们没有提供所需的结果。最主要的是无法控制结果语音音色,我得到米老鼠或 hell 僵尸的声音,但不是真正的声音。而如果用 Vega 的声音进行测试,结果非常出色:http://www.sonicapi.com/docs/live-task-demo?task=process-elastiqueTune#demo_form不幸的是,我对音频处理完全为零,并且至少想知道它是如何完成的,这里使用什么类型的移位算法以及我们如何实现对过程的音色/共振峰控制。任何提示都高度赞赏。谢谢;)

最佳答案

这个问题涉及一个非常广泛的主题。这里有一些提示。

一般来说,可以通过偏移形成语音 Material 的频率来改变音调。一个简单的版本是在时域中重新采样,其中本质上是以不同的速度回放录音。这自然也会导致节奏改变,这通常是不可取的。

为了保持节奏,您需要将 Material “分解”为其组成部分,换句话说,将域从时域更改为频域。这就是Fourier Transform是为了.完成后,您就可以估计每个样本的频率集(如果在复杂空间中正确完成,还可以估计相应的相位)。

感知到的声音音色取决于名为 overtones 的频率集的相对幅度。 。泛音在说话者的声道中形成,并与基频一起被听者听到。您可以在时域、频谱中使用不同的滤波器来控制音色(频率)域或 cepstral领域。这种信号处理是一个充满书籍的图书馆部分的主题。

您可以使用傅里叶逆变换从频谱(频率)域移动到时间(时间)域。

总而言之,转变音高的简单方法是,您需要将样本从时域变换到谱域,沿时间轴重新采样,然后进行傅里叶逆变换以返回到时域。

除了傅立叶变换之外,您还可以使用wavelets 。我希望这能让您开始。

关于javascript - 带音色控制的 JS 音高变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53467908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com