Преобразование и сегментирование коллекции 16100-битных монофонических wav-файлов 44100 Гц в 16-битные монофонические wav-файлы 16 кГц - PullRequest
0 голосов
/ 19 июля 2011

Мне нужно разбить большую коллекцию файлов WAV на более мелкие сегменты и преобразовать их в 16-битные 16-битные монофонические файлы WAV. Чтобы сегментировать файлы WAV, я скачал класс WavFile со следующего сайта: Класс WavFile . Я немного подправил его, чтобы пропустить произвольное количество кадров. Используя этот класс, я создал класс WavSegmenter, который будет читать исходный wav-файл и копировать кадры между временем x и временем y в новый wav-файл. Время начала и время окончания я могу получить из предоставленного XML-файла, и я могу получить кадры, используя sample rate * time. Моя проблема в том, что я не знаю, как преобразовать частоты выборки из 44 100 в 16 000.

В настоящее время я ищу Java Sound API для этого. Изначально я не обращался к нему, потому что я долго находил руководства, но если это лучший из существующих вариантов, я готов их пройти. Я все еще хотел бы знать, есть ли другой способ сделать это, все же. Наконец, я хотел бы знать, должен ли я полностью адаптировать Java API Sound и отбросить класс WavFile, который я сейчас использую. Для меня это звучит хорошо, но я бы хотел быть уверенным.

Заранее большое спасибо за потраченное время.

Ответы [ 2 ]

1 голос
/ 28 июля 2011

http://www.jsresources.org/examples/SampleRateConverter.html. Полагаю, это поможет вам ...

1 голос
/ 19 июля 2011

Я считаю, что самой сложной частью вашей задачи является повторная выборка с 44.1K до 16K выборок в секунду.Было бы намного проще уменьшить до 22K или 11K оттуда!Вам нужно будет выполнить некоторую интерполяцию там.

РЕДАКТИРОВАТЬ: После дальнейшего просмотра и обсуждения с OP, я считаю, что правильный выбор в этой ситуации - использовать Java Sound API, поскольку он предоставляет методы для преобразования между различными форматами звуковых файлов, включая разныеЧастота дискретизации.Придерживаясь API WavFile, потребуется повторная выборка, что довольно сложно реализовать в случае преобразования с 44,1 К на 16 КБ.

...