选择音频 API

Posted

技术标签:

【中文标题】选择音频 API【英文标题】:Choosing an audio API 【发布时间】:2012-10-18 21:00:30 【问题描述】:

我正在努力在大量音频编程语言和 API 之间进行选择。我对音频编程非常(完全)陌生,所以请多多包涵。

软件

我需要能够:

    在将不同声音输出到任何东西之前改变它们的音量(这些声音可以有多种不同的来源,例如 mp3 和麦克风输入) 相移声音 叠加我调整过的声音(根据项目 1 和 2) 相互独立地控制 8 个通道中每个通道的输出 让这一切都发生在 Windows7 上

这些功能需要由我可能自己制作的图形前端进行抽象。我想要做的是创建“声源”,并在 3D 环境中沿着预定义的轨迹和/或与钻机内的任何人的运动相关联地移动它们。我想做俯仰弯曲的原因是我可以处理红移的东西。

我不想事先构建完整的曲目然后播放它们。我希望播放的声音取决于传感器的外部输入以及我在前端所做的事情。

据我所知,这意味着我无法使用任何现有的完整音频制作应用程序。

问题

我一直在寻找我应该使用的 API 或语言,但我没有找到一个空白,实际上恰恰相反。我正在努力缩小搜索范围。我的很多问题都源于我没有音频编程经验。

那么,有人知道符合我标准的 API 或语言吗?

硬件材料和目标

(我把它留到最后,因为我不确定它的相关性)

我的目标是制作三个不同高度的扬声器环,并对它们进行足够的控制,以便能够模拟阵列中任意数量的“声源”。这个想法是让某人站在装备的中间,并能够让它听起来好像有很多东西在他们周围移动。为了让它工作,我计划做一个小触发并使用我电脑上的 8 个音频通道。数学很简单,剩下的就是我需要担心的

接下来我想做的是在物体上安装一堆摄像头,然后做一些简单的图像识别工作,以便能够将声源“附加”到不同的物体上。例如。如果有人站在正确的位置,它可以看起来好像所有的红色球都像鸭子一样嘎嘎叫,所有橙色的球都在发出令人难以忘怀的呻吟。

【问题讨论】:

您的#2 说“相移”,但我认为这不是您的意思。您的意思可能是“音高偏移”,但多普勒效应(这听起来像是您真正想要的)通常是通过可变延迟而不是音高偏移来实现的。 【参考方案1】:

这并不是要贬低 Richard Small 的回答,而是要评论一些其他选项:

如果您正在寻找可以更快地进行原型制作和开发的更高级别的东西,您需要max/msp 或它的开源竞争对手puredata。这些是为有技术头脑的音乐家设计的,但对程序员来说并不多。因此,您可以快速高效地构建这种东西。

您还有一些较低级别的选项:PortAudio 可以处理您的音频 I/O,您必须自己或与其他库一起完成声音生成和效果等。 Cinder 和 OpenFramewoks 都为“创造性编程”提供音频、相机和其他东西的接口。恐怕我不知道它们是否满足你的全部要求,但它们在这类事情上很强大而且很受欢迎,所以我鼓励你看看它们。

【讨论】:

【参考方案2】:

现在两个主要的往往是

Wise WWise Download Link

FMOD FMOD Download Link

事实上,这两个引擎对于你的需求来说可能有点过头了,但我几乎可以保证它们能够满足你的任何需求。

【讨论】:

谢谢,我听说过这些。我知道它们经常用于游戏音频之类的东西。很酷,但它们适合让事情实时发生吗?我在我的要求中添加了几点,以使内容更加清晰......

以上是关于选择音频 API的主要内容,如果未能解决你的问题,请参考以下文章

使用 Web Audio API 进行离线/非实时渲染

适用于 Android 的低延迟音频 API?

低级音频编程

哪个 iOS 音频 API 设计用于以低延迟从磁盘流式传输大型本地音频文件?

使用网络音频 api 检查所选麦克风是不是已静音

文本转音频(百度语音合成api)(python)