1. 程式人生 > >使用百度api進行文字識別,完成英語作業

使用百度api進行文字識別,完成英語作業

使用百度API進行文字識別,完成英語作業

介紹

這學期選了一門英語翻譯課,作業需要提交翻譯稿,但是老師為了防止我們利用翻譯軟體複製貼上,很精明的把需要翻譯的內容拍成了照片發給了我們。為了更“快”更“好“的完成作業,我就突發奇想,如果使用ocr識別照片中的文字,就不用手動把照片裡面的內容輸入翻譯軟體了。當然,訓練一個文字識別的模型成本太高,於是我就求助了一下萬能的百度API,調介面自然方便多了。

實現思路

1.呼叫百度API進行文字識別,輸出字串形式。

2.編寫爬蟲進行翻譯

很簡單,嗯,但是爬蟲那部分就有點麻煩了


程式碼實現

#識別部分
def ocr(pathfile):
    #定義常量,包含了你的ID,Key,Secret key
    APP_ID = '10944769'  
    API_KEY = '8wzXWKgYjcvsRtQyzMs7CHuq'  
    SECRET_KEY = 'Dd4j88qfhz1vsyLNktG70KGbCmLq77qS '
    
    #初始化物件
    aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    
    #讀取圖片
    with open(pathfile, 'rb') as fp:
        pic = fp.read()
    options = {
            'detect_direction': 'true',
            'language_type': 'CHN_ENG',
      }
    
    #調介面進行識別
    result = aipOcr.basicGeneral(pic, options)  
    
    #生成string型返回值
    words = ''
    for i in range(len( result['words_result'])):
        words = words + result['words_result'][i]['words']
    return words

#翻譯部分
def translate(words):
    url = 'http://fanyi.baidu.com/v2transapi/basetrans'
    data = {
            'query':words,
            'from':'en',
            'to':'zh'
            }
    headers ={'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'}
    response = requests.post(url, headers=headers, data=data).content.decode()
    print(response)
    data_dict = json.loads(response)
    data = data_dict['trans'][0]['dst']
    print(data)


識別結果還是可以的哈哈哈哈。