Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Audio 如何组合数字音频?_Audio_Signal Processing - Fatal编程技术网

Audio 如何组合数字音频?

Audio 如何组合数字音频?,audio,signal-processing,Audio,Signal Processing,我有两个wave文件,我提取了其中的数字样本。我需要同时玩这两种游戏。我如何组合这两个样本来生成两个声音同时播放的输出样本。如何对N个同时采样进行此操作?它是否像添加样本并取平均值那样简单?是的,您可以简单地将两者相加,然后除以二。 事实上,这是平均数 当两个样本都有相同的采样率时,这就非常简单了 是的,你可以简单地将两者相加,然后除以二。 事实上,这是平均数 当两个样本都有相同的采样率时,这就非常简单了 通过将单个样本添加到一起,组合数字音频。 当组合多个不相关的声源时,响度会增加。四个同时发

我有两个wave文件,我提取了其中的数字样本。我需要同时玩这两种游戏。我如何组合这两个样本来生成两个声音同时播放的输出样本。如何对N个同时采样进行此操作?它是否像添加样本并取平均值那样简单?

是的,您可以简单地将两者相加,然后除以二。 事实上,这是平均数


当两个样本都有相同的采样率时,这就非常简单了

是的,你可以简单地将两者相加,然后除以二。 事实上,这是平均数


当两个样本都有相同的采样率时,这就非常简单了

通过将单个样本添加到一起,组合数字音频。

当组合多个不相关的声源时,响度会增加。四个同时发出的声音大约是一个声音的两倍,而不是四倍。(这增加了6分贝。)

正如您所怀疑的,在同时播放多个声音时,您确实需要记住最终输出音量,但在组合N个同时源时,将其除以N不是正确的方法

最简单的方法是在应用程序中添加音量控制。当你的应用程序声音太大时,用户会关闭它。当组合少量声音时,这是简单且通常是正确的方法


手动音量控制并不是解决所有问题的正确方法。例如,第一人称射击手。想象一下,从一条安静的走廊跑到一场激烈的枪战中。声音环境将从只有少量声源的非常安静变为有大量声源的非常吵闹。在这种情况下,您可能需要某种形式的帮助

通过将单个样本添加到一起,组合数字音频。

当组合多个不相关的声源时,响度会增加。四个同时发出的声音大约是一个声音的两倍,而不是四倍。(这增加了6分贝。)

正如您所怀疑的,在同时播放多个声音时,您确实需要记住最终输出音量,但在组合N个同时源时,将其除以N不是正确的方法

最简单的方法是在应用程序中添加音量控制。当你的应用程序声音太大时,用户会关闭它。当组合少量声音时,这是简单且通常是正确的方法

手动音量控制并不是解决所有问题的正确方法。例如,第一人称射击手。想象一下,从一条安静的走廊跑到一场激烈的枪战中。声音环境将从只有少量声源的非常安静变为有大量声源的非常吵闹。在这种情况下,您可能需要某种形式的帮助

组合声音(以相同的采样率)只需要将两个数组按元素相加。您不需要除以N,除非您有净空问题。如果总和的值超过最大输出电平,这将导致削波,产生音频失真

除非您有一个大N或一个小N,其中每个源声音都标准化为最大输出电平,否则您不应该有剪辑问题。如果您事先知道信号的波形,您可以简单地预先按相同的标量值缩放每个波形,这样输出就不会中断。或者,如果要脱机渲染声音,则可以将波形求和,然后对合成信号进行归一化处理,使其不会剪辑

如果您处理的是N个源的实时输入流,则可以使用限制器最小化剪辑

组合声音(以相同的采样率)只需要将两个数组按元素相加。您不需要除以N,除非您有净空问题。如果总和的值超过最大输出电平,这将导致削波,产生音频失真

除非您有一个大N或一个小N,其中每个源声音都标准化为最大输出电平,否则您不应该有剪辑问题。如果您事先知道信号的波形,您可以简单地预先按相同的标量值缩放每个波形,这样输出就不会中断。或者,如果要脱机渲染声音,则可以将波形求和,然后对合成信号进行归一化处理,使其不会剪辑

如果您处理的是N个源的实时输入流,则可以使用限制器最小化剪辑


这也适用于任意数量的样本,然后我就采用它?在循环中,您可能需要处理不同的样本长度。循环到两个样本中最长的一个,当到达最短样本的末尾时,从那里开始假设值为0。这正是我所需要的。非常感谢。这也适用于任意数量的样本,然后我就采用它?在循环中,您可能需要处理不同的样本长度。循环到两个样本中最长的一个,当到达最短样本的末尾时,从那里开始假设值为0。这正是我所需要的。非常感谢。我在这篇博文的最后讨论了这一点。如果你在这方面有困难,读这篇文章可能会帮助你:我在这篇博文的结尾讨论这一点。如果你对此有困难,阅读这篇文章可能会帮助你: