У меня есть звуковой файл (в основном mp3, но битрейт может быть любым). Мне нужен метод для извлечения указанной части входного файла (не более 40 секунд) в 8-битный монофонический вывод wav. Я был бы признателен за любую помощь или совет в выборе библиотеки Java для этого.
Конвертировать звуковой файл в wav с определенным битрейтом и вырезать определенную часть файла
Ответы (2)
Вы можете использовать JavaLayer для декодирования mp3 в wav. Вырезать 40-секундный клип из wav не должно быть проблемой.
Вы можете найти некоторые советы по микшированию стерео в моно здесь: http://www.jsresources.org/examples/SingleChannelStereoConverter.html
Преобразование 16-битного аудио в 8-битное — это просто удаление старших 8 бит: бит PCM в 8 бит
EDIT: подробнее об извлечении 40-секундных частей:
Выход декодера - выборки PCM. если ваш вход - 16-битное стерео 44100 Гц, то каждый кадр - 16 бит * 2 канала = 4 байта, каждая секунда - 44100 * 4 байта. Пропустите столько выходных байтов, сколько вам нужно, до начала нужной части, затем сделайте дамп 44100 * 4 * 40 байт за 40 ваших секунд. Вы даже можете микшировать в моно, а затем нарезать на 8 бит по ходу дела.
Я видел много ссылок для преобразования в противоположном смысле, о котором вы спрашиваете, я имею в виду, что вы обычно получаете информацию для преобразования WAV в MP3 с использованием java, но, возможно, вы можете получить представление о том, как попробовать Java Media Framework API (JMF)
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html
Они объявили о новой поддержке MP3
http://www.oracle.com/technetwork/java/javase/download-137625.html
, возможно, вы можете найти альтернативу конвертации MP3 в WAV.
извините, я не могу помочь с чем-то конкретным
Эмекас