Аудио с понижением частоты от 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 ответ
Вот несколько хороших ссылок, чтобы начать самостоятельно:
В качестве альтернативы (для быстрого использования) эта БЕСПЛАТНАЯ библиотека - вот что вам нужно: