简体   繁体   中英

what is actually stored after converting audio to byte array in java?

Actually i am implementing audio steganography using the LSB replacement algorithm. I am converting the audio to byte array using the following code:

    File src = new File("C:\\test.wav");
    AudioInputStream ais = AudioSystem.getAudioInputStream(src);
    byte[] data = new byte[ais.available()];
    int n = ais.read(data);

Now the thing is that this audio file is a 16bit sample length, dual channel and LittleEndian; i checked this using the "isBigEndian()" function. Thus, i want to know how are the samples stored in the byte array so that i know which bits to replace.

How are you converting audio to a byte array?

What is actually stored is an array of samples. If you have a clean single tone of a certain frequency you would get an array that follows a sine curve. Here is an example of what you will see for a perfect sine wave:

127,130,133,136,139,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,186,189,192,194,197,200,202,205,207,209,212,214,216,218,221,223,225,227,229,230,232,234,235,237,239,240,241,243,244,245,246,247,248,249,250,250,251,252,252,253,253,253,253,253,254,253,253,253,253,253,252,252,251,250,250,249,248,247,246,245,244,243,241,240,239,237,235,234,232,230,229,227,225,223,221,218,216,214,212,209,207,205,202,200,197,194,192,189,186,184,181,178,175,172,169,166,163,160,157,154,151,148,145,142,139,136,133,130,127,123,120,117,114,111,108,105,102,99,96,93,90,87,84,81,78,75,72,69,67,64,61,59,56,53,51,48,46,44,41,39,37,35,32,30,28,26,24,23,21,19,18,16,14,13,12,10,9,8,7,6,5,4,3,3,2,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,2,3,3,4,5,6,7,8,9,10,12,13,14,16,18,19,21,23,24,26,28,30,32,35,37,39,41,44,46,48,51,53,56,59,61,64,67,69,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117,120,123

If you have a 16-bit stream you should use a short[] to store it so you don't need to worry about big/little endian. If you choose to use a byte[] it will be twice the size as the number of audio samples and two consecutive bytes would need to be combined to represent one sample.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM