たとえば wavファイルAとwavファイルBがあって、
それを連続させたwavファイルCを自動的に生成してくれて、
それらを携帯にDLできるというイメージです。
音声合成用のミドルウェア(できればオープンソース)で
phpベースで動くものなどご存じの方いますか?
よかったら教えてくださると幸いです。
wavファイルを連結させるのでしたら、下のようなコードで良いかと思います。
元のコードは、
に書かれています。
"read optional extra stuff"の箇所でエラーが出たのでコメントアウトしました。
<?php function joinwavs($wavs){ $fields = join('/',array( 'H8ChunkID', 'VChunkSize', 'H8Format', 'H8Subchunk1ID', 'VSubchunk1Size', 'vAudioFormat', 'vNumChannels', 'VSampleRate', 'VByteRate', 'vBlockAlign', 'vBitsPerSample' )); $data = ''; $header = ''; 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; } $wav = joinwavs( array("a.wav", "b.wav") ); $fp = fopen("c.wav", "wb"); fwrite($fp, $wav); fclose($fp);
コメント(0件)