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が作れそう。
関連エントリ
スポンサード リンク
Advertisements
SITE PROFILE
最新のブログ記事(新着順)
- 2000種類以上の汎用ピクトグラムアイコン集「Atlas Icons」
- かわいい手書き風フォント「うさぎとまんげつのサンセリフ」
- ランディングページのサンプル集「Landings」
- WEBのUIコンポーネントギャラリー「The Component Gallery」
- 汎用で使える700+のピクトグラムアイコン「Sargam Icons」
- 白黒写真をWEB上で簡単にカラーにできる「Palette」
- iPhone14Proのモックアップ
- 建築素材風のおしゃれな背景画像「Architextures」
- クールな今どきのギャラリーサイトを作れるサンプル
- SVG形式の背景パターンなどをWEBで生成できる「fffuel」
- 過去のエントリ