c++ - 如何混合语音音频

标签 c++ audio voip signals

我目前正在开发一个简单的 VoIP 项目,其中多个客户端将其语音发送到服务器,稍后服务器会将这些语音混合在一起。

但是,我无法使用简单的数学加法直接混合它。每个周期,客户端都会向混音器发送3584字节的语音数据。

下面是接收缓冲区中包含的值的片段:

BYTE buffer[3584];

    [0] 0        unsigned char
    [1] 192 'À'  unsigned char
    [2] 176 '°'  unsigned char
    [3] 61 '='   unsigned char
    [4] 0        unsigned char
    [5] 80 'P'   unsigned char
    [6] 172 '¬'  unsigned char
    [7] 61 '='   unsigned char
    [8] 0        unsigned char
    [9] 144 ''    unsigned char
    [10]    183 '·' unsigned char
    [11]    61 '='  unsigned char
     .
     .
     .

我不太确定缓冲区内的模式是如何从客户端以这种方式生成的,但我认为它可能是一种波形模式。现在假设我有另一个类似的数据,如何将声音混合在一起。

请帮忙。谢谢。

最佳答案

您需要查明您的 VoIP 系统是否使用压缩。可能是这样,在这种情况下,您需要做的第一件事就是解压缩流,然后混合它们,然后重新压缩。

关于c++ - 如何混合语音音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772224/

相关文章:

communication - 当我有同一个 SIP 提供商的多个电话号码时如何路由来电?

ssl - PJSIP TLS 验证错误(PJSIP_TLS_ECERTVERIF)

C++ 模板化友元类

c++ - ostringstream、.str() 和重置/清除流

javascript - 在手机上点击按钮播放 HTML 音频

asp.net - MySql 音频库

jquery - Angular 2 项目中的 Sinch API 在 onCallProgressing 上超时

c++ - 具有通过 int 参数化的模板参数的模板函数

c++ - 在编译时检测是否存在默认构造函数

iphone - 如何通过iPhone中的侧面音量控制按钮使用系统声音服务控制文件播放的音量