У меня есть приложение, которое записывает образец речи с микрофона пользователя и загружает его на сервер, который затем выполняет с ним некоторые действия. Кажется, я должен записывать со следующими параметрами, чтобы избежать 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 (я полагаю, что частота дискретизации и частота кадров), и он должен быть в моно (1 канал). Подпись PCM также является обязательной, так что это хорошо. (Сервер ОЧЕНЬ разборчив, и я не могу вносить в него какие-либо изменения.) Как я могу преобразовать это с помощью Java?
Я отправляю аудиофайл через HttpClient как Filebody сервлету, сохраняю его на сервере, а затем обрабатываю.