python图片文字与语音识别

1.使用第三方SDK

在已经安装python环境的情况下,安装第三方SDK,这里采用百度AI开放平台。

  • 下载安装SDK
    通过命令安装,使用pip install baidu-aip
    也可以下载SDK,解压复制在项目中
    sdk下载
  • 使用SDK
    进入百度的控制台,根据自己的需要选择对应的产品服务,建立自己的应用;


    应用信息

    代码中使用api:

from aip import AipOcr

APP_ID = '14682798'
API_KEY = '1RYUVnmvo2xn2j69Yk46OjCc'
SECRET_KEY = '******************************************'


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


if __name__ == '__main__':
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    # 设置建立连接超时时间
    client.setConnectionTimeoutInMillis(5000)
    # 设置传输数据超时时间
    client.setSocketTimeoutInMillis(50000)
    image = get_file_content("/Users/jack/Downloads/2018年第20批领证通知.jpg")
    # 获取文字识别结果
    resp = client.basicGeneral(image)
    for key, value in resp.items():
        print(key + ":" + str(value))

    # 直接通过url加载图片
    image_url = "http://www.miinac.gov.cn/mydownFile?id=300400374&flash=yes"
    resp = client.basicGeneralUrl(image_url)
    print(resp)

运行结果:


运行结果
  • 在百度AI开放平台监控:


    监控报表

    语音识别使用过程和图片文字识别,这里不做赘述。

2.使用tesseract-ocr

tesseract是一个google支持的开源ocr项目,不过要经过大量的训练才可以。

  • 安装pytesseract,pip install pytesseract
  • 安装tesseract;


    安装tesseract
  • 安装语言库,由于默认的不支持中文,支持的语言也很少,可以自己自行去下载,放置语言文件到指定的目录:share/tessdata。
    下载地址:https://github.com/tesseract-ocr/tessdata
  • 代码中是用:
from PIL import Image
from pytesseract import pytesseract

if __name__ == '__main__':
    text = pytesseract.image_to_string(Image.open('/Users/jack/Downloads/520.png'))
    print(text)
运行结果

原始图片:


520.png

当使用含有汉字的图片时,要指定语言类型:

text = pytesseract.image_to_string(Image.open('/Users/jack/Downloads/2018年第20批领证通知.jpg'), lang="chi_sim")

运行结果没有第三方SDK的效果好,很多都识别不出来。

你可能感兴趣的:(python图片文字与语音识别)