相关疑难解决方法(0)

使用Java将WAV文件读入样本数组时,即时转换采样率

我有一组简短的WAV文件,我想用Java处理各种数字信号处理算法.我需要为此目的获得一个int值样本数组,以11025 Hz帧速率编码.

源文件有几种不同的采样率,包括11025 Hz和44100 Hz.这是我试图用来读取它们的代码:

// read the WAV file
FileInputStream fileInputStream = new FileInputStream(new File("test.wav"));
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(fileInputStream );

// copy the AudioInputStream to a byte array called buffer
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] data = new byte[4096];
int tempBytesRead = 0;
int byteCounter = 0;
while ((tempBytesRead = audioInputStream.read(data, 0, data.length)) != -1) {
  bos.write(data, 0, tempBytesRead);
            byteCounter += tempBytesRead;
}
bos.close();
byte[] buffer = bos.toByteArray();

AudioFileFormat audioFileFormat = new AudioFileFormat(AudioFileFormat.Type.WAVE, audioInputStream.getFormat(), (int)audioInputStream.getFrameLength());

// get the …
Run Code Online (Sandbox Code Playgroud)

java windows audio signal-processing javasound

8
推荐指数
2
解决办法
6069
查看次数

改变声音文件的速度

我正在寻找改变声音文件的速度,但我不知道如何实现它.我假设在减慢速度的情况下必须进行某种类型的插值,但我不确定如何实现加速 - 也许是几个样本的平均值?无论是改变速度还是音高,目前都不重要,我想学习如何完成两者,但至少要完成其中一个或另一个.

如果有人对这些类型的操作背后的数学有任何参考,他们将不胜感激!

谢谢,本

algorithm audio multimedia

5
推荐指数
2
解决办法
5732
查看次数