Как сделать аудио-капчу
Поправка «Section 508» 1998 года к принятому в США «Закону о реабилитации» и российский ГОСТ Р 52872-2007 требуют, чтобы информационные технологии были доступны для людей с ограниченными физическими возможностями. В частности, пункт 5.5 вышеуказанного ГОСТа гласит: «Необходимо предусмотреть альтернативную авторизацию, не требующую ввода кода подтверждения, приводимого в графическом изображении. Для этого необходимо предусмотреть текстовую ссылку на файл, содержащий тот же код в звуковом формате («WAV» или «MP3»), размером не более 50 килобайт».
Сразу скажу, что я не буду приводить здесь готовый код, а лишь опишу принцип создания звуковой капчи.
Для этого нам понадобится прежде всего надиктованный текст всех используемых в капче символов. Сохраняем его в формате «WAV» (моно, 8 бит, 8 кГц). Этого вполне достаточно, чтобы распознать услышанный текст и вполне разумно, т.к. этот формат не подразумевает сжатия. Теперь, открываем этот файл в звуковом редакторе и определяем начало и конец для каждого символа в тысячных долях секунды.
Далее, совместно с формированием графической капчи, чтобы они распознавались как один и тот же набор символов, формируем аудио-капчу. Для этого необходимо всего лишь скопировать заголовок (первые 44 байта) из аудио-файла с набором символов, нарезать и склеить аудио-фрагменты, соответствующие необходимым символам. Время начала и конца каждого фрагмента, для вышеописанного формата, нужно умножить на 8, чтобы получить позицию этого фрагмента в байтах.
В принципе, звуковая капча готова. Можно её отдавать клиенту. Но, перед этим желательно сделать ещё две вещи: добавить шум и конвертировать в «MP3». Дело в том, что полученный простой склейкой фрагментов файл, при желании, довольно легко распознать, т.к. каждому символу соответствует строго определённый аудио-код. Чтобы от этого застраховаться и получить настоящую аудио-капчу, достаточно немного модифицировать этот код, случайным образом добавляя к каждому его байту несколько бит. Не очень много, чтобы файл оставался распознаваемым на слух. А перекодирование полученного файла в «MP3» даст существенное уменьшение в объёме и позволит, при желании, повысить качество звука.
Комментарии
@ltkssfb
Здравствуйте!
У вас есть вопрос или вам нужна помощь?

Спасибо, ваш вопрос принят.
Ответ на него появится на сайте в ближайшее время.