很好的实时音频库(发送和接收)

Good library for realtime audio (both sending and receiving)?

本文关键字:实时 音频 很好      更新时间:2023-10-16

我正在考虑做实时音频聊天的东西node.js。然而,据我所知,目前还没有任何好的库。为了录制音频,我可能会打开一个音频设备并从中读取PCM字节-然而,我不确定如何继续。我想要控制网络的东西,例如,我希望能够通过现有的连接复用流量,所以一个库,也处理网络部分不会为我工作。所以,我认为我需要的是:

  • 一个C/c++/JavaScript库,能够做快速(可能有损)实时音频(解)压缩(可能优化压缩人声)
  • 一个C/c++/JavaScript库,可以确保事情保持实时,例如,在抖动后照顾掉数据-也许我也可以在JavaScript中自己做这部分

这听起来合理吗?对于这些东西有什么好的库呢?

我创建了一个名为"Crosstalk"的c++音频库。

这是一个实时的c++音频引擎,允许你实时创建和路由音频系统。基本上,引擎会处理所有的音频路由,并为你提供一个创建系统组件的简单平台。"网络输入馈送"组件连接到"低通滤波器"连接到"文件记录器")。

它很容易使用。下面是一个如何播放mp3文件的示例(这些组件与引擎一起提供):

XtSystem system;
XtMp3Decoder mp3Decoder;
XtAudioDevice audioDevice;
long md = system.addComponent(&mp3Decoder);
long ad = system.addComponent(&audioDevice);
system.connOutToIn(md,0,ad,0);
system.connOutToIn(md,1,ad,1);
mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3");
mp3Decoder.play();

您可以在这里查看API文档和许可详细信息:http://www.adaptaudio.com/Crosstalk

更新:兼容免费许可证。

只有Crosstalk的演示版本可以与自由许可的软件一起使用,但是,Crosstalk的商业用途和分发仍然是不允许的。如果您希望在自由软件中使用"相声"演示,只需在您的EULA中注明您的程序使用"相声"的演示版本,并且无论您在哪里提供到您的软件的链接,都要提供到:"http://www.adaptaudio.com/Crosstalk"的链接,以便他们可以自己下载。

编辑(01-12-2012):

Crosstalk已经被一个叫做"DSPatch"的开源项目所取代。DSPatch本质上是Crosstalk背后路由引擎的升级版本,不再局限于音频处理。DSPatch允许您创建和路由几乎可以想象的任何类型的过程链,并且免费用于个人和专有用途:)