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

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

1 ответ

Решение

Вот несколько хороших ссылок, чтобы начать самостоятельно:

В качестве альтернативы (для быстрого использования) эта БЕСПЛАТНАЯ библиотека - вот что вам нужно:

Другие вопросы по тегам