为什么alaw产生噪音而ulaw没有

时间:2015-06-27 21:42:28

标签: encoding sample noise

我使用套接字将一些语音数据发送到另一台PC,然后我在使用ALAW发送它之前编码了我的数据" setup":

AudioFormat.Encoding.ALAW, 
8000.0f        // sampleRate
8,             // sampleSizeInBits
1,             // channels
1,             // frameSize
8000.0f,       // frameRate
false);        // bigEndian

问题是,当我不在麦克风上说任何话时,它会在接收器侧产生一个小的(但非常烦人的)噪音。当我说话时,噪音几乎消失了,但并不完全。

当我改为ULAW(完全相同"设置")时,噪音根本不存在,声音非常清晰。

我能做些什么吗?是否有任何推荐的设置与ALAW一起使用?我真的需要坚持使用ALAW,因为ULAW会导致代码中的一些混乱(并且需要进行太多修改)。

旁注:我打印了缓冲区,没有对麦克风说话,它有很多8,-1,8,-1,8,0,8,0类型的模式。我试图强迫所有8成为0,但仍然没有太大的区别。我试过这个,因为对于ALAW而言,当我不会说话时,有很多0,而不是8。我之前谈到的这种模式是在被声卡播放之前从(转换ALAW到PCM)PCM。 如果重要的话,我会从这里获取转换算法:ALAW PCM Conversions

1 个答案:

答案 0 :(得分:1)

检查静音抑制设置。并且确保没有一些隐式的编解码器转换。

  

A-law与u-Law A-law和u-law是两种用于修改输入信号进行数字化的算法。这些算法是   在世界各地的电话系统中实施。他们俩   算法具有相当小的差异,大多数人不会   知道区别。两者之间的第一个区别是   动态范围的输出; U-law的动态范围大于   一条法律。动态范围基本上是最安静的比例   可以在信号中表示的最响的声音。的缺点   具有更高动态范围的是小信号的更大失真。   这仅仅意味着a-law听起来比u-law更好   声音输入非常柔和。

阅读更多:A律与u-Law的区别| |之间的区别A-law vs u-Law http://www.differencebetween.net/technology/difference-between-a-law-and-u-law/#ixzz3eIfw2LtV