Понижение частоты звука с 44,1 кГц до 16 кГц в Java

У меня есть приложение, которое записывает образец речи с микрофона пользователя и загружает его на сервер, который затем что-то с ним делает. Кажется, я должен записывать со следующими параметрами, чтобы избежать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;

Но мне нужно, чтобы он был записан с частотой 16 кГц, а не 44,1, (sampleRate и частота кадров, я полагаю, ), и он должен быть в моно (1 канал ). Подпись PCM также обязательна, так что это хорошо. (Сервер ОЧЕНЬ требователен, и я не могу вносить в него какие-либо изменения. )Как я могу преобразовать это с помощью Java?

Я отправляю аудиофайл через HttpClient как Filebody в сервлет, сохраняю его на сервере и затем обрабатываю.

5
задан icedwater 27 November 2015 в 02:16
поделиться