Преобразование необработанных байтов в звук звука - PullRequest
5 голосов
/ 07 мая 2010

В моем приложении я наследую класс javastreamingaudio из пакета freeTTS, затем пропускаю метод записи, который отправляет массив байтов в SourceDataLine для обработки аудио. Вместо записи в строку данных я записываю этот и последующие байтовые массивы в буфер, который затем помещаю в свой класс и пытаюсь преобразовать в звук. Мое приложение обрабатывает звук в виде массивов с плавающей точкой, поэтому я преобразую в плавающую и пытаюсь обработать, но всегда получаю статический звук обратно.

Я уверен, что это путь, но я что-то упускаю по пути. Я знаю, что звук обрабатывается как кадры, и каждый кадр представляет собой группу байтов, поэтому в моем приложении мне нужно как-то обрабатывать байты в кадрах. Я смотрю на это правильно? Заранее благодарим за любую помощь.

1 Ответ

12 голосов
/ 18 мая 2010

Во-первых, вы хотите преобразовать ваш байтовый массив в InputStream. Затем вы создаете AudioInputStream из этого Inputstream, используя вашу AudioSystem. Если у вас есть аудиопоток, у вас есть звук, и вы можете записать его в файл или делать все что угодно.

ByteArrayInputStream oInstream = new ByteArrayInputStream(ayAudioData);
AudioInputStream oAIS = AudioSystem.getAudioInputStream(oInstream);
...