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(テキスト読み上げ) と(音声処理) のffmpeg2 つのubuntuツール独自の音声ライブラリを作成できます。

1 つ目は、これら 2 つのツールをインストールすることです。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