1

我正在使用一个电话录音软件(android),它可以记录两个人在电话中的对话。每个电话呼叫的输出是一个音频文件,其中包含来自呼叫者和被呼叫者的声音。

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

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

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

谢谢你。

4

2 回答 2

0

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

1.由于存储的WAV格式,我将音频解码为一系列整数值。
结果是 [xi] ; 0 < 西 < 255

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

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

4.剩下的很简单,我要决定一个参数M,每个x属于一个Y的较软的声音将乘以M,我得到最终的结果。

于 2012-11-17T13:02:15.200 回答
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

于 2012-11-11T04:32:40.943 回答