我正在尝试一个项目,我有一个振幅列表和相应的时间戳。
有什么简单的解决方案可以将这些数据转换成可播放的声音吗?
似乎如果你有一个振幅列表,你可以创建一个假设固定频率的wav文件。但是,如果数据的间隔是不同的呢?
任何流行的框架/软件都可以,首选python
你熟悉PCM(脉冲编码调制)的概念吗?
音频数据流将以这种形式保存。我认为对您所描述的内容的一个简单解释是将幅度数据列表中的插值值应用于构成固定频率波的PCM值。
因此,例如,从values1到values2的time1到time2,使用LERP(线性插值)函数导出一个体积因子,以乘以相应的PCM值。
现在,由于PCM的典型帧率是44100 fps,这可能会在振幅列表项之间产生很多插值。我想知道振幅列表中各元素之间的时间间隔是多少。delta必须非常小才有可能得到有趣的调幅效果。当振幅变化以音频速率发生时,一些奇怪的谐波会出现,因为振幅变化实际上会改变载波的形式。但是任何比这更慢的,IDK。
我忘了说,你需要一个Python库来播放PCM。在Java中,我们有SourceDataLine,它播放直接从PCM生成的字节。我知道Android和Web Audio API有直接播放PCM的方法。关于Python的IDK。