人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

音声合成のWEBサービスを作ろうと検討しております。

たとえば wavファイルAとwavファイルBがあって、
それを連続させたwavファイルCを自動的に生成してくれて、
それらを携帯にDLできるというイメージです。

音声合成用のミドルウェア(できればオープンソース)で
phpベースで動くものなどご存じの方いますか?

よかったら教えてくださると幸いです。

●質問者: knsket
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DL PHP WAV Webサービス イメージ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Watson
●60ポイント

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.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ