网站开发岗位就业分析,公众号开放平台,北京最新新闻,免费的网页制作软件1、均值化混音算法
不适合商用#xff0c;声音的损失比较大#xff0c;不建议用#xff0c;建议用第二种声音混音 short remix(short pcm1,short pcm2){ int value pcm1 pcm2; return (short)(value/2) } 2、归一化混音算法
输入数据为48Khz-2-16bit音频数据
方法#…1、均值化混音算法
不适合商用声音的损失比较大不建议用建议用第二种声音混音 short remix(short pcm1,short pcm2){ int value pcm1 pcm2; return (short)(value/2) } 2、归一化混音算法
输入数据为48Khz-2-16bit音频数据
方法为避免发生溢出使用一个可变的衰减因子对语音进行衰减。这个衰减因子也就代表语音的权重衰减因子随着音频数据的变化而变化所以称为自适应加权混音。当溢出时衰减因子较小使得溢出的数据在衰减后能够处于临界值以内而在没有溢出时又让衰减因子慢慢增大使数据较为平缓的变化。PCM音频混合的方法_pcm混音算法-CSDN博客 //归一化混音 void mix(char **src_data, char *mix_data, int channels, int buffer_size) { int const MAX 32767; int const MIN -32768; double f 1; int output; int i 0, j 0; for (i 0; i buffer_size / channels; i) { int temp 0; for (j 0; j channels; j) { temp *(short*)(src_data[j] i * channels); } output (int)(temp*f); if (output MAX) { f (double)MAX / (double)(output); output MAX; } if (output MIN) { f (double)MIN / (double)(output); output MIN; } if (f 1) { f ((double)1 - f) / (double)32; } *(short*)(mix_data i * 2) (short)output; } } 调用方法 char *testSrcData[2] { NULL }; testSrcData[0] 声音通道1数据 testSrcData[1] 声音通道2数据 mix(testSrcData, mix_data, 2, buffer_size); 3、其他方法本人没用过不好评价不过感觉第二种够用了至少目前没什么特别大的反馈
4、混音的思路
采集多路pcm数据-》统一重采样成48Khz-2通道-16bit-》归一化混音