gpt4 book ai didi

javascript - Web Audio Api 16 位到 32 位太慢了。(特别是对于这种时间紧迫的操作)/Workers

转载 作者:行者123 更新时间:2023-11-30 17:37:55 25 4
gpt4 key购买 nike

我正在从服务器获取 16 位音频,目前正在从服务器发送。它是交错的。这意味着我需要在 javascript 中循环并将左右分开为 2 个 32 位数组。好吧,这对于 javascript 执行和安排播放时间来说太慢了。事情变得不同步。这是直播。所以 web api 似乎只为本地 syths 等实现。流式传输 pcm 似乎不是一个好方法。我知道您永远不会发送 PCM。好吧,我想发送 vorbis 或类似的东西。它们必须位于 .ogg 或 webm 之类的容器中,但浏览器有其内部缓冲,我们几乎没有/没有控制权。

所以 O 尝试发送 ADPCM 并将其解码为 Javascript 客户端上的 PCM。那也太慢了。

如果我发送我的数据并在服务器上对其进行预处理。 Uninterleave onserver 并将其转换为 32 位 float 并将其发送给客户端。数据大小翻倍。 16 位到 32 位。

那么在客户端不进行处理的情况下渲染 16 路音频的最佳方式是什么?

您还可以从工作线程播放音频。在工作线程中实现转换会有所帮助。我的意思是所有 websocket 通信都在进行,而 JS 是单线程的。

我还想补充一点,当我将它与在 PC 上运行的客户端进行比较时,在 Mac Pro 上的 chrome 上进行计算是可行的(好多了,我几乎听不到样本之间的故障),

最佳答案

不,您目前不能从工作线程播放音频。但是,我真的怀疑您的问题在于解交织音频数据的成本;你试过只发送单声道流吗?在真实的网络环境中正确地同步和缓冲流是相当复杂的。

关于javascript - Web Audio Api 16 位到 32 位太慢了。(特别是对于这种时间紧迫的操作)/Workers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21673032/

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