按键精灵电脑版对接百度ai,告别字库(文字识别篇)

本文详细介绍了如何通过百度AI接口实现文字识别,包括获取token和图片识别步骤,并提供了关键代码示例。博主分享了创建应用、参数配置和VBS脚本的使用技巧,适合对AI开发感兴趣的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很简单,根据百度ai接口api文档,用post或者get请求,封装参数请求响应即可.哈哈,当然不可能就这样结束了本篇博客了.本篇先讲文字识别,喜欢的朋友可以关注下,后续会继续写图片识别等所有ai对接方式.

demo和插件点击下载
在这里插入图片描述
百度ai开放平台地址

前提你得会使用按键精灵电脑版的post,get请求,简单说明一下,get请求传递的参数封装太url后缀里,post请求参数封装在requestBody里,请求头和编码啥的,看我代码copy就行了

百度ai文字识别需要请求两个接口,才能拿到识别结果
1.获取token的接口
2.根据获取的token,请求文字识别的接口,参数为base64图片进行url编码(utf8)后的字符+token

1.获取token

先来看看文档怎么说的:

这里咱们用标准版,好处是免费,每天识别次数多5万次嘞,白嫖怪上线了
文档地址在这里插入图片描述
从文档中可以看出,我们需要传递的必要参数为
client_id: 必须参数,应用的API Key;
client_secret: 必须参数,应用的Secret Key;

所以,这里需要先创建应用
创建应用,拿到API Key和Secret Key:
1首页链接
2点击控制台
3扫码登陆
4点击后台菜单的文字识别
5创建应用
6应用列表拿到参数:API Key和Secret Key
请求接口,拿到token
直接get请求,官方推荐post,但是我用get请求主要是懒,返回的json字符串,需要用vbs代码解析,按键精灵直接导入使用就是,没门槛.

        grant_type = "client_credentials"
        api_key = "xxx"
        secret_Key = "xxx"
        url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=" & grant_type & "&client_id=" & api_key & "&client_secret=" & secret_Key
        TracePrint "url:"&url
        Dim WinHttp 
        Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
        WinHttp.SetTimeouts 60000, 60000, 60000, 3000 
        WinHttp.Open "GET", url, False'GET 或 POST, Url, False 同步方式;True 异步方式 
        WinHttp.Send
        返回值 = WinHttp.ResponseText
        TracePrint 返回值
        resToken = json解析(返回值, "access_token")
        Call Plugin.File.WriteINI("缓存token", "token", resToken,  basePath & "\文字识别.ini")
        获取token = resToken

json解析插件在评论区有链接,注意获取的token有效期是一个月,可以做一个本地缓存,过期了重新获取,这样可以减少请求时间.然后我们就拿到token了

2.识别文字

文档地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文档中可以看出,请求方式问post,请求必要参数为:
1access_token
2image(本地图片base64编码然后urlencode,编码格式utf-8)或url(网络图片地址) 二选一
响应参数也是json格式

直接上代码

Function 文字识别ex(图片路径)
    返回值 = 文字识别(图片路径)
    文字数组 = json解析(返回值, "words_result")
    word = ""
    If UBound(文字数组)>=0 Then 
        For i = 0 To UBound(文字数组)
            返回值 = 文字数组(i)("words")
            //TracePrint 返回值
            word = word + 返回值
        Next
    End If
    文字识别ex = word
End Function

Function 文字识别(图片路径)
    base64图 = imgToBase64(图片路径)
    base64图 = 编码(base64图)
    TracePrint "base64图:"&base64图
    token = 获取token
    TracePrint token
    url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" & token
    TracePrint "文字识别url:"&url
    Dim WinHttp 
    Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
    WinHttp.SetTimeouts 60000, 60000, 60000, 3000 
    WinHttp.Open "POST", url, False'GET 或 POST, Url, False 同步方式;True 异步方式 
    WinHttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    WinHttp.Send ("image="&base64图)
    返回值 = BytesToBstr(WinHttp.responseBody,"utf-8")//返回直接取中文乱码,所以先转为字节再转字符串
    TracePrint 返回值
    文字识别 = 返回值
End Function

Function imgToBase64(FilePath)
    Dim xml
    Dim root
    Dim fs
    Dim objStream
    Dim objXMLDoc
    Dim Base64
    Set objXMLDoc=CreateObject("Microsoft.XMLDOM")
    objXMLDoc.loadXML "<?xml version='1.0' ?><data></data>"
    Set fs = createObject("Scripting.FileSystemObject") ''FSO组件
    If fs.FileExists(FilePath) Then '判断File文件是否存在
        '用 stream 来读取数据
        Set objStream = CreateObject("ADODB.Stream")
        objStream.Type = 1
        objStream.Open
        objStream.LoadFromFile FilePath
        objXMLDoc.documentElement.dataType = "bin.base64"
        objXMLDoc.documentElement.nodeTypedvalue = objStream.Read
        '数据流读取结束.得到了值 objXMLDoc
        '创建XML文件
        Set xml = CreateObject("Microsoft.XMLDOM")
        xml.load objXMLDoc
        If xml.ReadyState>2 Then
            Set root=xml.getElementsByTagName("data")
            Base64 = root.Item(0).Text
            //TracePrint "Base64=" & Base64
            Base64 = Replace(Base64,vbLf,"") '不知道为什么带换行符,可能是长度不够自动换行,需要去除掉
        else
            Base64=""
        End If
        Set xml=Nothing
        Set objStream=Nothing
    else
        Base64=""
    End If
    Set fs=Nothing
    Set objXMLDoc=Nothing
    imgToBase64 = Base64
End Function

Function 解码(str)
    Set obj = New vbsUrlEnCode
    解码   = obj.URLDecode(str)
End Function

Function json解析(json字符串,key)
    Set json = New vbsJson
    Set o = json.Decode(json字符串)
    json解析 =  o(key)
End Function

Sub json插件注册
    PutAttachment basePath, "*.*"//释放附件到全局路径
    Import "c:\lw_game\vbsjson.vbs"
    Import "c:\lw_game\vbsUrlEnCode.vbs"
End Sub

Function 打印接日期(msg)
    TracePrint "【"&Date&" "&Time&"】"&msg
End Function
按键精灵搭配百度OCR文字识别”是一种巧妙的技术融合,它借助按键精灵的自动化操作能力以及百度OCR的文字识别服务,来实现对图片中文字的高效识别。按键精灵是Windows系统下一款功能强大的自动化工具,可通过编写脚本模拟键盘和鼠标操作,完成各种自动化任务;百度OCR则是百度提供的云端文字识别服务,能够精准地检测并识别图像里的文字,将其转化为可编辑的文本格式。 在上述文章(https://blog.csdn.net/weixin_43798572/article/details/124075686)中,作者详细阐述了如何将按键精灵百度OCR服务进行有机结合,以达成自动抓取图像文字的目的。整个过程大致包含以下关键步骤:首先,需在百度AI开放平台注册账号并申请OCR服务,进而获取API密钥和访问令牌,它们是与百度服务器通信时用于身份验证的重要凭证。其次,利用AutoHotkey语言编写按键精灵脚本,该脚本能够控制屏幕截图、保存图片以及调用百度OCR服务等操作,具体可能涉及选择特定屏幕区域进行截图、将图片保存至本地、读取图片路径、构造HTTP请求等诸多环节。接着,在脚本里构建一个HTTP POST请求,其中要包含API密钥、访问令牌以及图片数据,通常情况下,图片会被转换成Base64编码的字符串形式,作为请求体的一部分进行发送。然后,借助HTTP客户端库(例如WinHttp.WinHttpRequest.5.1)将请求发送至百度OCR的API接口,并等待其返回的JSON格式响应。之后,要对百度OCR服务返回的包含识别结果的JSON对象进行解析,从中提取出文字识别的相关结果。最后,根据实际需求,对识别到的文字做进一步处理,像复制到剪贴板、保存到文件或者执行其他自动化操作等。 这种技术结合在实际应用中极具价值,比如在自动化办公场景里,可用于快速从PDF或图片文件中提取文字内容,以便进
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值