gpt4 book ai didi

java - 如何混合多个PCM音频包(语音流)

转载 作者:行者123 更新时间:2023-12-03 01:07:21 29 4
gpt4 key购买 nike

我正在为游戏开发Java语音聊天,当多个玩家同时讲话时,音频混合出现问题。音频仅发送到附近的播放器,因此我将每个用户的缓冲区分别存储在客户端上,并将ID和语音数据包一起发送到服务器上。要收听,我要遍历用户列表并检查现有用户的缓冲区以重现它们。但是,我在混合音频时遇到问题,可能是混合错误。我应该如何混合这些音频包?音频是16位PCM。当几个玩家一起聊天时,这些音频中有很多杂音/嘶嘶声,因此音频几乎听不到。
适用于该混音器的正确算法是什么?

最佳答案

根据我对话筒输入的有限经验,我的出发点是尝试以下步骤:

  • 将16位字节转换为PCM
  • (考虑对PCM应用低通滤波器,可能还需要增加音量)
  • 将每行混合的PCM值加在一起
  • 将PCM转换回字节

  • 根据您的描述,我无法确定您是否正确地执行了步骤1。
    可以在jitsi.org上进行进一步研究。他们的服务是用Java编写的,并且是开源的。知道他们如何处理这件事将很有趣。但是在我看来,最平常的事情是在任何一次都只选择并播放一条线。对此限制可能有充分的理由。但是我不知道这是否是技术性的(例如,噪音以淹没声音的方式积累)还是仅仅是人们同时讲话很容易造成混乱。我认为可能还有回声/反馈注意事项。我将期待看到其他人可以为此提供哪些信息。

    关于java - 如何混合多个PCM音频包(语音流),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64615307/

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