Я разделяю стереофонический файл WAV на Java, используя итерационные методы с классом Java WavFile.Когда я использую python для чтения полученного монофонического файла wav и вывода частоты дискретизации и данных с использованием метода read из scipy.io.wavfile, я получаю ошибку:
'Ошибка значения: Неожиданный конец файла.'
Я не получаю эту ошибку с другими монофоническими wav-файлами, которые я пробую, только с теми, которые я сделал с Java.Глядя на другие сообщения на форуме, я знаю, что это связано с тем, как я настраиваю информацию заголовка для файлов, однако, после попыток ссор и прочтения документации по API, чтобы убедиться в правильности моего использования, я в растерянности.
Мой код Java
try {
WavFile srcFile = WavFile.openWavFile(this.audioFile);
long numFrames = srcFile.getNumFrames();
long sampleRate = srcFile.getSampleRate();
int channels = 2;
int bitRate = 16;
File[] files = new File[channels];
WavFile[] wavFiles = new WavFile[channels];
for (int i = 1; i < channels + 1; i++) {
//Populates File Array
files[i - 1] = new File("output" + i + ".WAV");
wavFiles[i - 1] = WavFile.newWavFile(files[i - 1], 1, numFrames, bitRate, sampleRate);
}
int bufferLength = Math.toIntExact(numFrames);
int[][] buffer = new int[channels][bufferLength];
long frameCounter = 0;
while (frameCounter < numFrames){
srcFile.readFrames(buffer,bufferLength);
for (int j = 0; j<channels;j++){
wavFiles[j].writeFrames(buffer[j],bufferLength);
}
frameCounter += bufferLength;
}
} catch (Exception ex) {
System.out.println("WavFile failed to open source file: " + ex);
}
Простой код Python, который извлекает данные из файла WAV
import scipy.io.wavfile as wav
fs, data = wav.read(file)
wav.close()
Насколько я понимаю, код Python не должен иметь проблем при чтении файла WAVфайл независимо от его источника.