【发布时间】:2016-04-01 12:09:45
【问题描述】:
我正在处理电话原始电话声音和录音,我想在 .Net C# 项目中将它们标准化为某个音量级别。
声音是原始音频字节的集合(单声道无头 16 位有符号 PCM 音频 16000Hz)。
音频被分成 3200 字节 == 100 毫秒的块。
有什么建议可以提高音量/振幅以使声音更大吗?
我不知道是否需要添加一个常量或乘法值,或者是否需要每 1、2、3.... 字节执行一次?也许已经有一个开源解决方案?
【问题讨论】:
-
每两个字节是一个有符号的 16 位值。只需将 then 乘以某个固定常数即可避免溢出。
-
@RomanR。感谢您的评论。当我将两个字节转换为 Int16 并将它们乘以 10 并将其转换为两个字节时,我听到了声音,但它确实失真了。
-
我写过你应该注意溢出,乘以十可能会得到很多。尝试 1.1 让初学者见证该方法运行良好。
-
@RomanR。哦,作为乘数的 2 或 3 没有任何可听见的失真。但是分贝的增加并不明显。所以我(也许很快)认为它不起作用。我再试一次,谢谢回复。
-
@RomanR。感谢您的信息,我想通了。