Как читать сжатые аудио файлы .wav в Java? - PullRequest
0 голосов
/ 11 февраля 2019

Я хотел бы прочитать аудиофайл с пониженной частотой от 22050 Гц до 8000 Гц.Размер буфера был 512 для 22050 Гц.Есть ли какое-либо решение для этого или любого другого подхода для чтения файлов WAV с пониженной дискретизацией в java?

Подход для чтения аудиофайла был реализован с использованием класса ReadExample из http://www.labbookpages.co.uk/audio/javaWavFiles.html, который работал правильно для22050 Гц оригинальное аудио.
Когда я уменьшил частоту дискретизации, используя librosa Python, и записал файл на частоте 8000 Гц, чтобы прочитать этот файл, используя метод ReadExample, он выдал исключение -

Error :WavFileException: Compression Code 3 not supported WavFileException: Compression Code 3 not supported

Process finished with exit code -1


код равен -

import java.io.*;

public class ReadExample
{
   public static void main(String[] args)
   {
      try
      {

         WavFile wavFile = WavFile.openWavFile(new File(args[0]); //22050Hz filepath

         wavFile.display();
         int numChannels = wavFile.getNumChannels(); //numChannels = 1

         double[] buffer = new double[512 * numChannels];

         int framesRead;
         double min = Double.MAX_VALUE;
         double max = Double.MIN_VALUE;

         do
         {

            framesRead = wavFile.readFrames(buffer, 512);

            for (int s=0 ; s<framesRead * numChannels ; s++)
            {
               if (buffer[s] > max) max = buffer[s];
               if (buffer[s] < min) min = buffer[s];
            }
         }
         while (framesRead != 0);
         wavFile.close();
         System.out.printf("Min: %f, Max: %f\n", min, max);
      }
      catch (Exception e)
      {
         System.err.println(e);
      }
    }
}

Ожидаемым результатом было получение значений в буфере как обычно.

1 Ответ

0 голосов
/ 11 февраля 2019

Возможно, вы не использовали Java для уменьшения звука.
Либо

downsample .wav с использованием Java, а затем проверьте его работу.Хорошая ссылка для на основе Java понижающей дискретизации и this

ИЛИ

повторной выборки .wav с использованием сторонних библиотек и тестирования.Ссылка для Повторная выборка с использованием сторонней библиотеки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...