Joining .WAVs with PHP

Joining .WAVs with PHP

 This is pretty simple for CAPTCHAs – there is no need for complicated speech synthesis because you only need recordings of the 26 possible letters. But you need a way of joining those recordings on the fly…function joinwavs($wavs){
    $fields = join(’/',array( ‘H8ChunkID’, ‘VChunkSize’, ‘H8Format’,
                              ‘H8Subchunk1ID’, ‘VSubchunk1Size’,
                              ‘vAudioFormat’, ‘vNumChannels’, ‘VSampleRate’,
                              ‘VByteRate’, ‘vBlockAlign’, ‘vBitsPerSample’ ));
    $data = ‘’;
    foreach($wavs as $wav){
        $fp     = fopen($wav,’rb’);
        $header = fread($fp,36);
        $info   = unpack($fields,$header);
        // read optional extra stuff
        if($info[’Subchunk1Size’] > 16){
            $header .= fread($fp,($info[’Subchunk1Size’]-16));
        }
        // read SubChunk2ID
        $header .= fread($fp,4);
        // read Subchunk2Size
        $size  = unpack(’vsize’,fread($fp, 4));
        $size  = $size[’size’];
        // read data
        $data .= fread($fp,$size);
    }
    return $header.pack(’V',strlen($data)).$data;
}

Just fill it with a bunch of .wav files and it will return a new joined file.

Leave a Reply

You must be logged in to post a comment.


All material @ copyrighted by chrisranjana.com. If you want to link to this article you are welcome to do so. Unauthorized publication is strictly prohibited. This developer tutorial website contains articles by Php programmers , Software developers, Mysql programmers and asp c# programmers. This website also contains ajax tutorials and advanced mysql sql stored procedures and functions tutorials and sample codes.