我使用套接字将一些语音数据发送到另一台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
答案 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