几行代码搞定识别图片中的文字信息,同时转换成语音

前几天想把一篇不错的文章保存下来,无奈是图片的,于是想利用python把图片中的文字识别出来

实现的方式还是挺多的,这里介绍下百度的AI开放平台,毕竟大公司,感觉识别的精度会高点,同时相信他们的算法也会不断优化,我等小菜鸟只要会用就可以啦。

一些准备

使用百度的AI开放平台,首先你得有个百度的开发者账号,相信你有百度云的话应该都会有,没有的话简单注册一下就可以了。

然后进入控制台选择-去创建个应用,这样就会生成对应的AppID,API Key和Secret Key,调用百度API的时候需要用到。

截图1

截图2

可以看到,作为开发者你每天有一定的免费调用次数,但如果不满足需求,可能就需要付费啦。

截图3

正式编码

下面简单介绍下编码过程,具体可以参考百度的官方文档

百度不但提供API,还贴心的准备了热门语言的SDK,包括,,等等,其实本质还是调用API。

这里以python为例,首先安装python的SDK:

pip install baidu-aip

看了下文档的demo,其实还是比较简单的,几行代码就搞定了,文章最后贴自己的源码吧。

在浏览文档的时候发现,百度还提供了一些列的识别,包括身份证,银行卡,营业执照等固定的模板,同时还可以识别表格和自定义模板文字识别,在实际业务场景中还是挺有用处的。

此外还有一些其他AI相关的技术,有兴趣的小伙伴可以自行看下。

最后贴一下自己写的一个小demo,识别图片中的文字后,又通过语音合成转成了mp3的音频:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

__author__ ='Cavin Cao'

'''

功能:利用百度官方api,读取图片中的文字,同时将文字转换成语音

官方地址:http://ai.baidu.com/docs#/OCR-Python-SDK/top

'''

importconfig

fromaipimportAipOcr,AipSpeech

""" 你的 APPID AK SK """

APP_ID = config.baidu_app_id

API_KEY = config.baidu_api_key

SECRET_KEY = config.baidu_secret_key

clientAipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)

clientAipSpeech = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

#测试图片

picture_url="http://image.bug2048.com/mongo20180906.jpg"

""" 读取图片 """

defget_file_content(filePath):

withopen(filePath,'rb')asfp:

returnfp.read()

"""

1.调用文字识别API识别图片上的文字

2.拼接文字后调用语音合成API转换成语音

"""

defconvert_picture_words():

words=''

wordsResult=clientAipOcr.basicGeneralUrl(picture_url)

foriteminwordsResult['words_result']:

words+=item['words']+','

ifwords=='':

return

words=words[:-1]

print(words)

speechResult=clientAipSpeech.synthesis(words,'zh',1, {

'vol':5,

'per':3

})

# 识别正确返回语音二进制 错误则返回dict 参照下面错误码

ifnotisinstance(speechResult, dict):

withopen('result.mp3','wb')asf:

f.write(speechResult)

if__name__ =='__main__':

convert_picture_words()

总结

几行代码搞定的快感依旧屡试不爽。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180914A0BLGD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券