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

栏目: Python · 发布时间: 5年前

内容简介:前几天想把一篇不错的文章保存下来,无奈是图片的,于是想利用python把图片中的文字识别出来实现的方式还是挺多的,这里介绍下百度的AI开放平台,毕竟大公司,感觉识别的精度会高点,同时相信他们的算法也会不断优化,我等小菜鸟只要会用就可以啦。使用百度的AI开放平台,首先你得有个百度的开发者账号,相信你有百度云的话应该都会有,没有的话简单注册一下就可以了。

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

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

一些准备

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

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

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

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

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

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

正式编码

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

百度不但提供API,还贴心的准备了热门语言的SDK,包括 java , pyhton , c# 等等,其实本质还是调用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
'''

import config
from aip import AipOcr,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"


""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

"""
    1.调用文字识别API识别图片上的文字
    2.拼接文字后调用语音合成API转换成语音
"""

def convert_picture_words():
    words=''
    wordsResult=clientAipOcr.basicGeneralUrl(picture_url)
    for item in wordsResult['words_result']:
        words+=item['words']+','
    if words=='':
        return
    words=words[:-1]
    print(words)
    speechResult=clientAipSpeech.synthesis(words, 'zh', 1, {
        'vol': 5,
        'per': 3
    })

    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(speechResult, dict):
        with open('result.mp3', 'wb') as f:
            f.write(speechResult)


if __name__ == '__main__':
    convert_picture_words()

总结

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

Ps. 项目地址: https://github.com/CavinCao/python_libraries_demo


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

运营其实很简单:互联网运营进阶之道

运营其实很简单:互联网运营进阶之道

郑文博 / 人民邮电出版社 / 2018-2 / 49.80元

为了帮助从事运营或即将从事运营的广大读者更好、更快地了解运营、学习运营、入职运营,本书详细阐述运营对于用户、企业的帮助,同时以单个理论点 单个实战案例的方式详细分析了社群运营、活动运营、新媒体运营、内容运营、渠道运营、精细化运营、场景化运营、用户化运营、商业化运营等模块及运营工作、渠道整合、社群知识、渠道优化、SOP流程等细节,力求让读者在求职路上快速上手,在迷茫途中快速定位。 《运营其实很简单 ......一起来看看 《运营其实很简单:互联网运营进阶之道》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具