音频,平衡来自2个声源的声音

问题描述 投票:1回答:2

我正在使用手机录音软件(android),通过电话记录2人之间的对话。每个电话呼叫的输出是一个音频文件,其中包含来自呼叫者和被呼叫者的声音。

但是,大多数情况下,该软件运行的手机语音比另一个更清晰。用户要求我使2声音同样清晰。

所以我现在遇到的问题是:我有一个声音文件,其中包含来自2个不同音量音源的声音,我应该怎样做,不应该增加来自这两个声源的音量相同的音量。鉴于这是一个电话,所以在特定时间只有一个人说话。

我至少看到了一个解决方案:制作一个程序来分析声音文件的波形,识别来自声源较小的声源文件的部分并将其增加到与另一个看似平衡的水平。然而,这将不是一个容易实现的,我也希望有更好的解决方案。你对我有什么建议吗?

谢谢。

android audio voice recording waveform
2个回答
0
投票

嗯,首先要做的是摆脱你不关心的所有噪音。

您想要使用的频谱是:300 Hz至3500 Hz

您可以切断所有其他可以大幅降低噪音的频率。然后,您可以应用自动均衡增益配置文件,甚至可以使用多个设备上的DSP配置文件。

如果你有机会,我也会看看这份白皮书。 (需要IEEE或ACM会员资格)。

基于DirectShow技术的自动均衡系统及其在广播电台音视播出系统中的应用

http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5384659&contentType=Conference+Publications&searchWithin%3Dp_Authors%3A.QT.Bai+Xinyue.QT


0
投票

这就是我解决这个问题的方法:

1.感谢存储WAV格式,我将音频解码为一系列Integer值。 结果是[xi]; 0 <xi <255

2.然后我必须决定2个自定义值: - 噪音阈值?如果xi>阈值=>它不是噪音(很天真!) - 声音应该多长时间才能成为人类的一大块声音? 我自己选择第一个值为5,第二个值为100毫秒

3.我的算法将分析[xi]到[Yi],每个Y是一个x的数组,每个Y代表一个人类声音的块。 之后,我用k = 2和k = 2得到k-mean,得到2个不同的Y簇,一个属于声音较大的人,另一个属于声音较弱的人。

4.剩下的是非常直接的,我必须决定一个参数M,每个x属于较软的声音的Y将与M相乘,我得到最终的结果。

© www.soinside.com 2019 - 2024. All rights reserved.