我有一个应用程序,可以从用户的麦克风录制语音样本并将其上传到服务器上,然后服务器会对其进行一些处理。为了避免IllegalArgumentException
异常,似乎我必须使用以下参数进行录制:
Encoding encoding = AudioFormat.Encoding.PCM_SIGNED;
float sampleRate = 44100.0F;
int sampleSizeInBits = 16;
int channels = 2;
int frameSize = 4;
float frameRate = 44100.0F;
boolean bigEndian = false;
但是我需要以16khz的采样率进行录制,而不是44.1khz(我想应该是sampleRate和framerate都要改吧),并且必须是单声道(1个通道)。PCM签名也是必需的,所以很好。 (服务器非常挑剔,我无法对其进行任何更改。)我该如何使用Java进行转换?
我正在通过HttpClient将音频文件作为Filebody提交到servlet,将其保存在服务器上,然后进行处理。