Python을 사용하여 사진 및 음성 인증 코드 만들기

환경

  • 윈도우 10 64비트

  • 파이썬 3.8

  • 보안 문자 0.4

머리말

captcha이미지 또는 오디오 확인을 생성하는 데 사용되는 타사 라이브러리입니다. 확인 코드 기술은 web애플리케이션 . 이 기사에서는 몇 가지 일반적인 용도를 살펴보겠습니다.

설치하다

명령을 사용하여 pip설치

pip install captcha

먼저 사진 확인 코드의 예를 살펴보세요.

import argparse
from captcha.image import ImageCaptcha

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--text', type=str, default='xugaoxiang', help='text that show in the image')
    opt = parser.parse_args()

    # 实例化,指定宽度和高度,如果想更换显示的字体,可以使用参数 fonts
    image = ImageCaptcha(width=300, height=100)
    captcha_text = opt.text
    # 生成图片
    data = image.generate_image(captcha_text)
    # 保存图片
    image.write(captcha_text, 'captcha.png')

매개변수로 --text실행 , 매개변수가 없으면 기본값이 사용됩니다.xugaoxiang

python test.py --text xgx

2fd20d097b46d64ca596bdcd5c1b83aa.png

다음으로 음성 인증 코드의 예를 살펴보겠습니다. 핵심 코드는 매우 유사합니다.

from captcha.audio import AudioCaptcha

if __name__ == '__main__':
    audio = AudioCaptcha()
    captcha_text = '1234'
    audio_data = audio.generate(captcha_text)
    audio.write(captcha_text, 'out.wav')

실행 후 오디오 파일이 현재 디렉토리에 생성됩니다 out.wav. 오디오에는 문자열이 포함되며 1234물론 방해가 되는 약간의 소음이 있습니다.

음성디렉토리를 지정하지 않으면 기본적으로 숫자만 생성되며, 문자를 생성해야 하는 경우 코드에서 오류를 보고합니다. 이때 우리는 자체 음성 라이브러리를 생성할 수 있으며, 이는 두 가지 도구 espeak(텍스트 음성 변환) 및 (음성 처리) ffmpeg 사용하여 구현할 수 있습니다 . 시스템을 사용하는 방법은 다음과 같습니다.ubuntu

첫 번째는 이 두 가지 도구를 설치하는 것입니다.apt install

sudo apt install espeak ffmpeg

공통문자는 0~9까지의 숫자와 26글자이며 대문자와 소문자를 구분하는 것이 가장 좋으며 이를 명확히 한 후 명령어를 실행한다.

# 环境变量
export ESLANG=en

# 创建目录
mkdir $ESLANG

# 给每个字符创建一个文件夹,使用 espeak 生成对应文本的语音,最后使用 ffmpeg 处理一下
for i in {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9}; do mkdir $ESLANG/$i; espeak -a 150 -s 100 -p 15 -v$ESLANG $i -w $ESLANG/$i/orig_default.wav; ffmpeg -i $ESLANG/$i/orig_default.wav -ar 8000 -ac 1 -acodec pcm_u8 $ESLANG/$i/$i.wav; rm $ESLANG/$i/orig_default.wav; done

for i in {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9}; do mkdir $ESLANG/$i; espeak -a 150 -s 100 -p 15 -v$ESLANG $i -w $ESLANG/$i/orig_default.wav; ffmpeg -i $ESLANG/$i/orig_default.wav -ar 8000 -ac 1 -acodec pcm_u8 $ESLANG/$i/$i.wav; rm $ESLANG/$i/orig_default.wav; done

c374ed6a0af6f5ec2bd6ec9caffcfe77.png

자체 음성 라이브러리를 사용하면 코드만 보고 사용할 수 있습니다.

from captcha.audio import AudioCaptcha

if __name__ == '__main__':
    # 使用自己的语音库
    audio = AudioCaptcha(voicedir="en")
    captcha_text = 'XGX123'
    audio_data = audio.generate(captcha_text)
    audio.write(captcha_text, 'out.wav')

이러한 방식으로 문자의 음성도 생성할 수 있습니다. ubuntu여기서는 대소문자를 구분 windows하지만 구분하지 않는다는 점 에 유의해야 합니다 X. 즉 와 는 동일 x합니다 . 따라서 windows에서는 모든 대문자 또는 소문자를 먼저 통일 처리한 다음 해당 음성을 생성해야 합니다.

한자음화 부분 aptespeak설치 후 기본적으로 지원하지 않으며 오류 메시지가 나타납니다. Full dictionary is not installed for 'zh'해결 방법은 다시 컴파일 espeak하고 컴파일 --compile=zh매개변수를 것입니다.관심 있는 어린이 신발은 스스로 시도할 수 있습니다.

자세한 내용은 공식 문서 https://pypi.org/project/captcha/를 참조하십시오.

Python 실용 모듈에 대한 주제

더 유용한 python모듈을 다음으로 이동하십시오.

https://xugaoxiang.com/category/python/modules/

추천

출처blog.csdn.net/djstavaV/article/details/126516068