環境
ウィンドウズ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
次に、音声認証コードの例を見てみましょう。コア コードは非常によく似ています。
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
2 つの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
独自の音声ライブラリを使用して、コードを確認するだけで使用できます
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
では、最初にすべての大文字または小文字を統一処理してから、対応する音声を生成する必要があります。
漢字読み上げ部分についてはapt
、espeak
インストール後のデフォルトではサポートされておらず、エラーメッセージが表示されますFull dictionary is not installed for 'zh'
. 解決策は、再コンパイルespeak
してコンパイル--compile=zh
パラメータことです. 興味のある子供の靴は自分で試すことができます.
詳細については、公式ドキュメント https://pypi.org/project/captcha/ を参照してください。
Python実用モジュールに関するトピック
より便利なpython
モジュール、に移動してください
https://xugaoxiang.com/category/python/modules/