javaとmatlabの両方で.wavファイルのデータを読み込み、バイトの配列として保存しようとしています。 MATLABでwavファイルを読むjava vs matlab
public byte[] readWav2(File file) throws UnsupportedAudioFileException, IOException {
AudioFormat audioFormat;
AudioInputStream inputAIS = AudioSystem.getAudioInputStream(file);
audioFormat = inputAIS.getFormat();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// Read the audio data into a memory buffer.
int nBufferSize = BUFFER_LENGTH * audioFormat.getFrameSize();
byte[] abBuffer = new byte[nBufferSize];
while (true) {
int nBytesRead = inputAIS.read(abBuffer);
if (nBytesRead == -1) {
break;
}
baos.write(abBuffer, 0, nBytesRead);
}
byte[] abAudioData = baos.toByteArray();
return abAudioData;
}
を私はwavread関数で使用しています:
[Y, FS] = wavread('sound.wav', 'native');
をしかし、私は取得しています結果が異なっていて、次のように
Javaでコードが見えます。 Javaで
最初の20バイト:MATLABで
53, 0, 19, 0, -71, -1, -80, -1, -99, -1, 10, 0, 87, 0, -69, -1, 123, -1, -77, -1
:
53, 19, -71, -80, -99, 10, 87, -69, -133, -77, 38, 143, 13, -100, 39, 45, -52, -83, -82, 56
なぜJavaでの毎秒のバイトは0または-1 MATLABで存在しない場合? 0と-1をスキップしてもJavaのどこに123のMATLABがあるのですか-133ですか?なぜ違うのですか?
ファイルはステレオですか?この[media page](http://pscode.org/media/#sound)で入手できる 'leftright.wav'の結果は何ですか?もっと早く助けを求めるには、[SSCCE](http://sscce.org/)を投稿してください。 –
ファイルがモノではない – Radek