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
最新のブログ記事(新着順)
- くちばしフォント【商用可】
- 小説表紙などに使えそうな商用可なフォント「になロマン」
- 筆で書いたようなカナ書体「筆竹仮名B」
- 無料・商用利用可な丸文字ピクセルフォント「マルミーニャM」
- スペースコブラ風フォント
- Next.jsのVercelから商用利用可能なフリー汎用フォント「Geist Font 」
- 無料で使えるいい感じの日本語フォント「しっぽり太ゴシック」
- CSSのみで実装された500種類のローディングアニメーション「CSS Loaders」
- 画像ホバーで様々なエフェクトをかけられる「Izmir」
- CSSのbox-shadowをGUIで生成できる「CSS Box Shadows Generator」
- 過去のエントリ