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

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

内容简介:前几天想把一篇不错的文章保存下来,无奈是图片的,于是想利用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


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

查看所有标签

猜你喜欢:

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

智能

智能

[法]弗雷德里克·马特尔 / 君瑞图、左玉冰 / 商务印书馆 / 2015-8 / 59.90

揭示数字化主流大趋势的最新权威论著 《主流》作者的最新力作!与法国秋季新版同步上市! 面对数字化时代的到来,美国、欧盟、中国、俄罗斯、印度、巴西、古巴、伊朗、南非、韩国、新加坡、肯尼亚、墨西哥、日本等世界各国各地区正在如何应对? 在国际地缘政治格局下如何把握数字化主流的大趋势? 谷歌、苹果、脸书、亚马逊、阿里巴巴、腾讯、中兴、华为等大家熟知的网络巨头接受了作者的采访。作者的......一起来看看 《智能》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

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

在线XML、JSON转换工具