美文网首页
Captcha 验证码

Captcha 验证码

作者: 坚果jimbowhy | 来源:发表于2019-08-23 13:59 被阅读0次

    Captcha 验证码

    [ImageCaptcha 识别] https://blog.csdn.net/mcyJacky/article/details/88614820
    [Captcha] https://pypi.org/project/captcha/0.1.1/

    captcha不是一个单词而是一串单词的缩写 Completely Automated Public Turing Test to Tell Computers and Humans Apart(全自动区分计算机与人类的图灵测试)。我们都知道图灵测试是什么,captcha的核心思想就是设计出人类能够轻易通过但是计算机无法完成的任务,通过任务的测试结果,来确定进行操作的到底是人类还是计算机。

    使用语音验证 AudioCaptcha 需要提供 8-bit 的语言字符声波文件:

    {{language}}-{{character}}-{{username}}.wav
    # exmaple: zh-1-lepture.wav
    

    可以使用百度 Text2Audio 生成 mp3,文件再使用 ffmpeg 转换成标准 wav 格式:

    http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&aue=6&text=abc
    https://cloud.baidu.com/doc/SPEECH/TTS-API/12.5C.E8.BF.94.E5.9B.9E.html
    
    ffmpeg.exe -i ren voices\raw\0.mp3 -acodec pcm_u8 -ar 8000 voices/0/0.wav
    ffmpeg.exe -i ren voices\raw\1.mp3 -acodec pcm_u8 -ar 8000 voices/1/1.wav
    ffmpeg.exe -i ren voices\raw\2.mp3 -acodec pcm_u8 -ar 8000 voices/2/2.wav
    ffmpeg.exe -i ren voices\raw\3.mp3 -acodec pcm_u8 -ar 8000 voices/3/3.wav
    ffmpeg.exe -i ren voices\raw\4.mp3 -acodec pcm_u8 -ar 8000 voices/4/4.wav
    ffmpeg.exe -i ren voices\raw\5.mp3 -acodec pcm_u8 -ar 8000 voices/5/5.wav
    ffmpeg.exe -i ren voices\raw\6.mp3 -acodec pcm_u8 -ar 8000 voices/6/6.wav
    ffmpeg.exe -i ren voices\raw\7.mp3 -acodec pcm_u8 -ar 8000 voices/7/7.wav
    ffmpeg.exe -i ren voices\raw\8.mp3 -acodec pcm_u8 -ar 8000 voices/8/8.wav
    ffmpeg.exe -i ren voices\raw\9.mp3 -acodec pcm_u8 -ar 8000 voices/9/9.wav
    

    aue =3 ,返回为二进制mp3文件,具体header信息 Content-Type: audio/mp3;
    aue =4 ,返回为二进制pcm文件,具体header信息 Content-Type:audio/basic;codec=pcm;rate=16000;channel=1
    aue =5 ,返回为二进制pcm文件,具体header信息 Content-Type:audio/basic;codec=pcm;rate=8000;channel=1
    aue =6 ,返回为二进制wav文件,具体header信息 Content-Type: audio/wav;

    注意aue=4或者6是语音识别要求的格式,但是音频内容不是语音识别要求的自然人发音,所以识别效果会受影响。

    # pip install captcha
    from io import BytesIO
    from captcha.audio import AudioCaptcha
    from captcha.image import ImageCaptcha
    
    audio = AudioCaptcha(voicedir='/path/to/voices')
    image = ImageCaptcha(fonts=['c:/windows/fonts/BlackoakStd.otf', 'c:/windows/fonts/simhei.ttf'])
    
    data = audio.generate('234')
    assert isinstance(data, bytearray)
    audio.write('4322344', 'out.wav')
    
    data = image.generate('1234')
    assert isinstance(data, BytesIO)
    image.write('1234', 'out.png')
    

    使用正常字体很容易别 TensorFlow 识别,越是没有规则形状的图形越难。

    相关文章

      网友评论

          本文标题:Captcha 验证码

          本文链接:https://www.haomeiwen.com/subject/tbazsctx.html