Python给女朋友翻译化妆品标签,瞬间解决生存问题
最近小编遇到一个生存问题,女朋友让我给她翻译英文化妆品标签。美其名曰:"程序猿每天英语开发,英文一定很好吧,来帮我翻译翻译化妆品成分",”来,帮我看看这个面膜建议敷几分钟“。。。。看来斥巨资买化妆品不算完,还需要会各种英文介绍。
默默收起大学考的一摞429分的四级证书,我打开了IDE。。。我打算开发一个能批量翻译的图片的demo,把家里的各种化妆品都翻译好。机智如我,是不会自己从训练模型做起的,打开有道智云的友好的AI接口页面 ,果然有图片翻译服务,体验了一下可是真不错,于是果断使用。
效果展示
Demo在这里,一起来看看效果吧:
识别过程如下:
逐个看看效果哈!make up for ever 虽然没翻译成玫珂菲,哈哈哈但是关键词长期保湿、固定喷雾都翻译出来了~~棒
这个更是不明觉厉,韩文、英文混合都能翻译~~~
樱花水的表现也不错哦~
再乱入一个开起来更像包装盒的图片识别,效果不错,没受图片上文字倾斜等影响 :
调用API的准备工作——生成调用所需要的应用id和密钥
根据有道智云的接口约定,需要先在有道智云的个人页面上生成调用所需要的应用id和密钥,以便作为你的调用标识以及收费参考。。
具体步骤是:在有道智云的个人页面上创建实例、创建应用、绑定应用和实例,获取调用接口用到的应用的id和密钥。具体个人注册的过程和应用创建过程详见文章分享一次批量文件翻译的开发过程
开发过程介绍
1、api接口介绍
先介绍下该工程的核心部分,有道智云图片翻译服务的调用接口
API HTTPS地址:https://openapi.youdao.com/ocrtransapi
接口调用方式:POST
请求格式:表单
相应格式:JSON
接口调用参数
调用API需要向接口发送以下字段来访问服务。
签名生成方法如下:
1、将请求参数中的应用ID appKey
,图片的Base64编码 q
,UUID salt
和应用密钥
按照应用ID+q+salt+应用密钥
的顺序拼接得到字符串str
。
2、对字符串str
做 md5,得到32位大写的sign
(参考Java生成MD5示例,可点击右侧的JAVA示例)。
输出结果
返回的结果是json格式,具体说明如下:
2、详细开发
这个demo使用python3开发,包括maindow.py,transclass.py,pictranslate.py三个文件。maindow.py主要实现界面部分,使用python自带的tkinter库,来进行图片文件选择、选择结果存放路径。transclass.py实现了图片读取、处理等逻辑,最后通过pictranslate.py中的方法来调用图片翻译API。
1、界面部分
主要元素:
获取待翻译图片文件的方法(此处设置的仅支持.jpg文件):
获取结果存储路径:
翻译按钮,调用了translate_files,该文件中的translate_files()方法最终调用了translate类的translate_files()方法:
2、批量图片处理
transclass.py实现了图片读取、处理等逻辑,Translate类定义如下:
3、有道api调用
pictranslate.py中封装了调用有道智云API的一些方法,其中最核心的是connect()方法,按照接口要求拼接了所需参数,发起请求并返回结果。
总结
又是一次愉快的开发体验,而且还是为数不多的求生成功体验 : P ,没想到借助开放平台的力量,图像识别,自然语言处理变得如此易如反掌,只要能正确发起请求,就能得到不错的翻译结果,剩下大把的时间用来和女朋友炫技,这感觉——爽!
文章转载:SegmentFault
(版权归原作者所有,侵删)