Audio Embedding With An Error Correction Algorithm
Audio Embedding With An Error Correction Algorithm
Algorithm
Husnu Narman
There are two important requirements in audio where fix is a MATLAB function that truncates
embedding. Two of them, which are the decimal part of a rational number. To make
perceptual transparency, and high data rate of small modifications, 0-1000 range can be used.
hidden data mentioned by Nedeljko and To illustrate;
Seppänen [6]
1000
𝑓𝑖𝑥 ( ×(𝑎𝑢𝑑𝑖𝑜 𝑝𝑒𝑎𝑘 𝑣𝑎𝑙𝑢𝑒 + 1)
Steganography is an art of language which 2
takes advantages of the weakness of the
human auditory and visual systems to Detailed explanation about how to make use of
communicate. Audio steganography is these modifications are discussed in the next
challenging to human auditory system [HAS]. section.
The human ear can detect changes in audio
files as low as one part in 10 million. [3],[7]. Due the latter modification, the stego cannot be
Therefore, throughout this paper it is assumed decoded correctly. Hence, it is necessary to
that small changes in an audio file cannot be implement error correction in the code to protect
detected by HAS. However, due to the audio stego. In this paper, Hamming Code [9] is used
file specifications, we can encounter errors for error correction.
while decoding hidden data from embedded
audio. It is important to protect the ratio
between transparency, decoding without Proposed Algorithm
errors, and hidden data rate. To manage this
goal, numerous techniques to hide data behind
an audio file have been developed. Modifying In this section, two audio steganography
lower tones, changing frames, translating peak algorithms are explained. The first one is to
to integer, and several others can be found in use any functional transform to the specified
the literature. integer range within threshold to hide the
message. Second algorithm is audio
embedding using error correction method
based on functional integer transformation. Step1: Translate secret file to binary and read
Integer transformation is also used by Agaian audio file using wavread function.
et al. [3]. The method described by Agaian is Step2: Split the binary stego file into eight bits
improved to obtain higher SNR and higher (Depending on which error correction is
rate of hidden data. selected).
Step3: Send to error handler to create 12 bit
The aim of the second algorithm is to reduce blocks with error correction bits.
the error of hidden message after decoding Step4: Find the peaks to hide based on the user
even if the hidden message can be a large file specified threshold value.
or image. The difference of this method from Step5: Use a transformation function to obtain
the first one is implementation of Hamming integer numbers for the peak values.
Code. Step6: Modify peak not to exceed range [-1, 1]
First Algorithm - Encoding: and the [-threshold, threshold] to hide error
correction bits using 0-255 interval integer
Step1: Translate secret file to binary and read transformation.
audio file using wavread function. Step7: Modify peak not to exceed range [-1, 1]
Step2: Find the peaks to hide based on the user and the [-threshold, threshold] to hide stego
specified threshold value. file bits using 0-1000 interval integer
Step3: Use a transformation function to obtain transformation or any other suitable ranges
integer numbers for the peak values (by using
the range between 0 and 255, the hidden data Second Algorithm - Decoding:
recovered with negligibly small errors.
However, when the ranged is increased, the Step1: Read the audio file using wavread
hidden data is recovered with noticeable function.
errors.). Step2: Split into 12 bit blocks.
Step4: Modify peak not to exceed range [-1, 1] Step3: Apply integer transformation for both
and the [-threshold, threshold] to hide stego error correction bits (range 0-255) and stego
file data bits. file data bits (0-1000 or any other suitable
Step5: Write the modified audio file using ranges).
wavwrite function. Step4: Evaluate mod (2) of transformed
integers.
First Algorithm - Decoding: Step5: Check the blocks for error using
Hamming Code.
Step1: Read the audio file using wavread Step6: Add the corrected 8 bit blocks to
function buffer.
Step2: Apply the integer transformation to the Step7: Invert the buffer in binary form to
peaks which are outside of [-threshold, secret data.
threshold] interval.
Step3: Evaluate mod(2) of transformed
integers and add to buffer. Experimental Result
Step4: Invert the buffer in binary form to
secret data.
Step5: Display the result. Signal to Noise Ratio (SNR) and Mean Square
Error (MSE) measures are calculated for the
raw audio and the embedded audio files for
Second Algorithm - Encoding: comparison. In addition, another measure,
Percentage Stego Error (PSE), is presented to Table 1: MSE, SNR, and PSE for two audio
compare the decoded stego file with the files processed with different integer intervals
original stego file. for relatively large stego files
𝑀𝑆𝐸(𝜑) = ∑ 𝐸((𝜑 − 𝜑 ∗ )2 )
∑ 𝜑2
𝑆𝑁𝑅(𝜑) = 10 ∙ log10 [ ]
𝑀𝑆𝐸(𝜑)
Conclusion