前言
很早之前,写了一篇博客:【调用百度智能云API,实现身份证智能识别并转语音 | Python】
最近,有同学说需要批量识别身份证信息,所以优化了一下代码。
批量识别,参考代码:
# -*- coding: utf-8 -*-
"""
Created on Mon May 29 16:29:43 2023 Sunny
"""
from aip import AipOcr,AipSpeech
clientAipOcr = AipOcr('23371074', 'POTXBZN7KLWfyCmrT53w3vlT', 'Fy0ykaHwKtL1pggSjp4m0dwfR68Gb6om')
clientAipSpeech = AipSpeech('23374670', 'znrQvqN4ZSqROVfmupthcieR', '2FYUADL7Nzj3foOWdoWguamGsTrSls5r')
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
"""
1.调用文字识别API识别图片上的文字
2.拼接文字后调用语音合成API转换成语音
"""
def convert_picture_words(image, num):
words=''
wordsResult=clientAipOcr.basicGeneral(image)
for item in wordsResult['words_result']:
words+=item['words']+','
if words=='':
return
words=words[:-1]
print('words: ',words)
speechResult=clientAipSpeech.synthesis(str(words), 'zh', 1, {
'vol': 5,
'per': 3
})
print('result: ',speechResult)
# 识别正确返回语音二进制 错误则返回dict
if not isinstance(speechResult, dict):
file_name = 'result' + str(num) + '.mp3' # 定义语音文件名
with open(file_name, 'wb') as f:
f.write(speechResult)
print('识别完成')
if __name__ == '__main__':
# 首先,定义需要识别的身份证文件列表
file_list = ['身份证照1.png', '身份证照2.png', '身份证照3.png']
# 遍历进行文字识别和语音合成
for i in range(len(file_list)):
image = get_file_content(file_list[i])
convert_picture_words(image, i)
【如果觉得不错,请点个赞吧~】