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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With