描述:声音数据在两种表示
一种是用小数表示,用0到1.0 之间的一个小数,表示声音的采样值。
另一种是用整数表示,用0到65535之间的整数,表示采用值。
现有一下声音数据是以小数采样的。请把它转成整数采样。同时把音量噪点 ( > 0.7 ) 去掉
1 添加类 Samples.java
package my;
public class Samples
{
// audio: 输入音频采集,以小数形式表示
// threshold: 音量阈值
public int[] f2i (double[] audio, double threshold)
{
int[] result = new int[ audio.length ]; // 采样个数
for (int i=0; i< audio.length; i++)
{
double f = audio[i];
if(f > threshold)
{
f = threshold; // 音量不能超过最大值
}
result [ i ] = (int) (65535 * f ); // 将小数采样转成整数采样
}
return result;
}
}
2 调用其方法
package my;
public class HelloWorld
{
public static void main(String[] args)
{
double[] audio = { 0.21, 0.22, 0.22, 0.24 };
Samples s = new Samples();
int[] converted = s.f2i( audio, 0.7);
}
}