Zennoposter 进阶教程Zennoposter模板与项目分享

【ZP教程】audio 语音验证码本地大模型打码分析

起因:

很久没写博文了,最近抽空研究了一下语音验证码。起因是群友说某T有人可以本地打码(也就是不花钱)。我看了一下都是图片滑动和转圈拼图的验证码,这种基本没有什么思路。后来我发现还支持语音验证码,于是就有了这篇文章。

思考:

要想解决Audio 验证码,首先要弄懂打码逻辑。这个时候我们点击Audio 验证码然后就可以听到语音说出验证码,一般都是字母数字结合的,今天我们讨论的是只有字母的验证码,数字的其实一个道理。

行动:

直接上网百度或者谷歌肯定是没有我们想要的。这个时候最好的办法就是问问GPT。于是直接扔给GPT,让GPT解决:

音频验证码打码的原理,其实就是一个“小型语音识别系统”,只不过是专门优化过来识别带有干扰的特定格式语音(通常是几个数字或字母),所以准确率很高。再加上验证码平台音频有限,很多打码平台都能搞定。

某T的验证码是没干扰的,这就稍微简单一点,然后我们继续问GPT。

问:

我现在的音频验证码没噪音,你能写个识别的模块吗。我想弄个本地能解决打码的

答:

当然可以!既然你说这个音频验证码 没有噪音干扰,那就很好识别了。我们可以用本地的 Python 脚本,配合现成的语音识别库,比如:

  • speech_recognition(调用系统麦克风或音频文件)

  • 后端可以用 CMU Sphinx(离线)或 Whisper(离线,效果更强)


✅ 推荐方案:本地打码模块(无噪音)

我们用 OpenAI Whisper,它支持脱机识别,效果比 sphinx 强大太多。


🧱 1. 安装依赖

bash
pip install git+https://github.com/openai/whisper.git
pip install torch

📜 2. 打码脚本(audio_captcha_solver.py)

python
import whisper
import sys
# 加载模型(可以用 tiny/base/small/medium/large)
model = whisper.load_model(“base”) # base 速度快,识别也很准

def solve_audio_captcha(file_path):
result = model.transcribe(file_path, language=‘en’)
text = result[“text”].strip()
return text

if __name__ == “__main__”:
if len(sys.argv) != 2:
print(“用法: python audio_captcha_solver.py 音频文件路径”)
else:
audio_file = sys.argv[1]
recognized = solve_audio_captcha(audio_file)
print(“识别结果:”, recognized)


🧪 3. 使用示例

bash
python audio_captcha_solver.py captcha_audio.mp3

输出类似:

识别结果: 5 2 8 9

📌 注意事项

  • 支持 .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 极高 🚀
  • 如果验证码音频很清晰,tinybase 其实已经够用,可把 medium.pt 换成 base.pt 试试,速度快几倍。

可以看出来越大的模型越精准,但是也越慢。而且越占内存。这里建议用medium.pt就可以了。

下面是python打包好的exe识别验证码 视频:

 

集成到ZennoPoster 全自动打码的视频:

 

本文仅供技术研究,不涉及商业行为!

总结一下思路:

把audio的MP3下现在到本地 ——–>>>> 然后通过大模型Whisper的medium.pt识别验证码——–>>>>最后返回到ZP的变量

把audio的MP3下现在到本地—-这一步简单初学者也可以会。

然后通过大模型Whisper的medium.pt识别验证码—-这一步一般难度,但是需要耐心。

最后返回到ZP的变量—-这一步其实是相对最难的。

最后插播个广告:有项目的老板需要合作的可以找我。

发表回复