2015-01-15 7 views
0

Что может сделать прямой способ преобразования полезной нагрузки аудио (PCM 16 бит) с 6 кГц до 8 кГц? Я понимаю, что это проблема интерполяции.Воспроизводимость звука PCM: от 6 кГц до 8 кГц

Я боюсь, что линейная интерполяция приведет к слишком большому шуму. Если да, то какая была бы лучшая интерполяция? Я смотрел на Lanczos resampling, но я видел, что он используется только для масштабирования изображения и не уверен, что это того стоит для аудио.

Я использую Java. Я нашел JSSRC library, но я бы предпочел что-то более легкое. Кроме того, я не уверен, что это действительно необходимо для низкочастотного звука (который, по-видимому, декодируется из ADPCM).

BTW, мне не интересно создавать WAV с частотой 6 кГц, я действительно хочу повторить выбор.

+0

Возможно, более подходит для http://dsp.stackexchange.com/? (Не совсем уверен, поэтому не голосовал.) – NPE

+0

Я что-то узнал. – gawi

ответ

0

Линейная интерполяция на самом деле довольно хорошая. Это стоит попробовать. Если вы работаете на Java с PCM (полученным из AudioInputStream, затем конвертируя входящие байты в PCM), тогда сохранение, Java позаботится о деталях заголовка WAV-формата. Вы видели этот учебник? Using Files and Format Converters

В первом примере кода, обратите особое внимание на момент, когда комментарий появится: «// Здесь, сделать что-то полезное ...»

Я думаю, что потому, что вы собираетесь на более высокую частоту дискретизации , процесс интерполяции может работать. Если бы вы пошли на более низкую скорость, возникли бы сложности из-за частот более 3 Гц (Nyquist для частоты дискретизации 6 Гц), вызывающих сглаживание.