PHPでオーディオ読み上げCAPTCHAを実現する方法
2006年12月01日
スポンサード リンク
Joining .WAVs with PHP [splitbrain.org]
I’m currently working on a CAPTCHA plugin for DokuWiki and thought about providing audio output for users not able to see the image.
PHPでオーディオ読み上げCAPTCHAを実現する方法。
次のような、複数のWAVオーディオファイルを結合する関数が公開されてました。
<?php
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;
}
?>
joinwavs( array("a.wav", "b.wav", "c.wav") ); のようにして、WAVファイルのリストを渡すことで1個に結合できるっぽいです。
関数によってかえった結果を audio/x-wav ヘッダーによって出力すれば読み上げできますね。
使えそうなWAVファイルはここで配っているようで、これと組み合わせれば強固な読み上げCAPTCHAが作れそうですね。
もちろん、オーディオは自分で用意すれば独自の音声CAPTCHAが作れそう。
関連エントリ
スポンサード リンク
投稿者 KJ : 2006年12月01日 07:02
|
![]()
間違いの指摘をしていただける方はメールでお願いします
最新のブログ記事
- ケータイシミュレータのP1エミュレータが一旦有償になりましたが無料評価版が出たみたい
- 2008年10月10日 管理人のブックマーク
- Yahoo!のアクセス解析ツール「Yahoo! Web Analytics」
- メールやカート、矢印など絵文字風ボタンアイコン集
- 使えるPhotoshopのテクニックが満載のブログ「PSD learning」
- 2008年10月9日 管理人のブックマーク
- 10日間のPHP無料研修を開催!テンプスタッフ・テクノロジー株式会社にインタビュー
- 色々なPhotoshopブラシを入手できるサイト「BlendFu」
- 暇つぶしに良い面白オンラインFlashゲーム集
- Photoshopで行う3Dテキストエフェクト集
- 2008年10月8日 管理人のブックマーク


















