gpt4 book ai didi

HTML5 & Web 音频 api : Streaming microphone data from browser to server. 理想的传输和数据压缩

转载 作者:太空狗 更新时间:2023-10-29 13:49:41 24 4
gpt4 key购买 nike

我希望从浏览器获取音频输入并将其流式传输给多个听众。预期用途是用于音乐,因此质量必须达到 mp3 标准或附近。

我试过两种方法,都没有成功:

WebRTC

  • 直接在浏览器之间流式传输音频效果很好,但据我所知,音频质量似乎无法自定义。 (我已经看到它正在使用 Opus 音频编解码器,但似乎没有公开任何控件)。
  • 有没有人知道如何提高 WebRTC 流中的音频质量?

网络套接字

  • 问题是从浏览器到服务器的传输。我可以通过以下方法获取的 PCM 音频数据已证明太大,无法通过 websockets 重复流式传输到服务器。该流在高速互联网环境中完美运行,但在较慢的 wifi 上无法使用。

    var context = new webkitAudioContext()
    navigator.webkitGetUserMedia({audio:true}, gotStream)

    function gotStream (stream)
    {
    var source = context.createMediaStreamSource(stream)
    var proc = context.createScriptProcessor(2048, 2, 2)

    source.connect(proc)
    proc.connect(context.destination)
    proc.onaudioprocess = function(event)
    {
    var audio_data = event.inputBuffer.getChannelData(0)|| new Float32Array(2048)
    console.log(audio_data)
    // send audio_data to server
    }
    }

所以主要问题是,有没有什么办法可以压缩 PCM 数据,以便更容易地流式传输到服务器?或者也许有更简单的方法来解决这个问题?

最佳答案

当然,有很多方法可以压缩 PCM 数据,但实际上,最好的选择是让 WebRTC 正常工作。 WebRTC 旨在执行此操作 - 自适应流媒体 - 尽管您没有定义“多个”听众的含义(3 个听众和 300,000 个同时听众之间存在巨大差异)。

关于HTML5 & Web 音频 api : Streaming microphone data from browser to server. 理想的传输和数据压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749433/

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