【ZP教程】audio 语音验证码本地大模型打码分析
起因:
很久没写博文了,最近抽空研究了一下语音验证码。起因是群友说某T有人可以本地打码(也就是不花钱)。我看了一下都是图片滑动和转圈拼图的验证码,这种基本没有什么思路。后来我发现还支持语音验证码,于是就有了这篇文章。
思考:
要想解决Audio 验证码,首先要弄懂打码逻辑。这个时候我们点击Audio 验证码然后就可以听到语音说出验证码,一般都是字母数字结合的,今天我们讨论的是只有字母的验证码,数字的其实一个道理。
行动:
直接上网百度或者谷歌肯定是没有我们想要的。这个时候最好的办法就是问问GPT。于是直接扔给GPT,让GPT解决:
音频验证码打码的原理,其实就是一个“小型语音识别系统”,只不过是专门优化过来识别带有干扰的特定格式语音(通常是几个数字或字母),所以准确率很高。再加上验证码平台音频有限,很多打码平台都能搞定。
某T的验证码是没干扰的,这就稍微简单一点,然后我们继续问GPT。
问:
我现在的音频验证码没噪音,你能写个识别的模块吗。我想弄个本地能解决打码的
答:
当然可以!既然你说这个音频验证码 没有噪音干扰,那就很好识别了。我们可以用本地的 Python 脚本,配合现成的语音识别库,比如:
-
speech_recognition
(调用系统麦克风或音频文件) -
后端可以用
CMU Sphinx
(离线)或Whisper
(离线,效果更强)
✅ 推荐方案:本地打码模块(无噪音)
我们用 OpenAI Whisper,它支持脱机识别,效果比 sphinx
强大太多。
🧱 1. 安装依赖
📜 2. 打码脚本(audio_captcha_solver.py)
🧪 3. 使用示例
输出类似:
📌 注意事项
-
支持
.mp3
,.wav
,.m4a
等格式; -
如果音频很短,建议加参数:
model.transcribe(file_path, fp16=False)
; -
Whisper 支持中文和多语言,但验证码一般都是数字或字母;
如果你想用更轻量的 pocketsphinx
(不推荐识别数字),也可以给你做一个轻量级的离线版本。
你现在验证码是几位数字?是纯数字、字母,还是混合的?我可以根据格式再帮你优化一下模型识别精度。
一般GPT给出的都是python代码,但是ZennoPoster又不能直接执行python代码。但是python代码可以直接打包成exe文件,这样咋们的ZennoPoster就可以完美执行了,虽然不能完美操控exe文件。但是执行一下 然后exe返回个验证码还是很简单的。需要ZennoPoster C#代码。这个属于培训的高阶阶段了(想要参加培训的也可以点击这里。)。说起来简单其实这个验证码我大概折腾了2天。最严重的问题就是python打包后的EXE执行起来各种问题。
我这里用的是whisper 的medium.pt模型大概1.5G左右,这个都是人家训练出来的模型,我们直接拿来用就好了。这个出来的验证码G J分不清楚,不过也足够了。再大一点的模型将近6G。下面是速度跟模型准确的:
✅ 提高 Whisper 识别速度的几种方法:
1. 使用更小的模型(推荐)
-
模型越小,识别越快。你可以使用以下模型替代:
模型名 精度 速度 tiny
很低 🚀🚀🚀🚀🚀 base
低 🚀🚀🚀🚀 small
中 🚀🚀🚀 medium
高(当前用) 🚀🚀 large
极高 🚀 -
如果验证码音频很清晰,用
tiny
或base
其实已经够用,可把medium.pt
换成base.pt
试试,速度快几倍。
可以看出来越大的模型越精准,但是也越慢。而且越占内存。这里建议用medium.pt就可以了。
下面是python打包好的exe识别验证码 视频:
集成到ZennoPoster 全自动打码的视频:
本文仅供技术研究,不涉及商业行为!
总结一下思路:
把audio的MP3下现在到本地 ——–>>>> 然后通过大模型Whisper的medium.pt
识别验证码——–>>>>最后返回到ZP的变量
把audio的MP3下现在到本地—-这一步简单初学者也可以会。
然后通过大模型Whisper的medium.pt
识别验证码—-这一步一般难度,但是需要耐心。
最后返回到ZP的变量—-这一步其实是相对最难的。
最后插播个广告:有项目的老板需要合作的可以找我。