python在命令行下使用google翻译(带语音)


Posted in Python onJanuary 16, 2014

说明

1. 使用google翻译服务获得翻译和语音;
2. 使用mplayer播放获得的声音文件,因此,如果要播放语音,请确保PATH中能够找到mplayer程序,如果没有mplayer,请将use_tts设置为False运行。即:
main(use_tts=False)
3. 退出程序,输入"x",回车。

#! /usr/bin/env python
#coding=utf-8
import requests

def translate(words):
    import re
    url = ("http://translate.google.cn/translate_a/t?"
    "client=t&hl=zh-CN&sl=en&tl=zh-CN&ie=UTF-8&oe=UTF-8&oc=1&otf=2&ssel=3&tsel=0&sc=1&q=%s")
    ret = requests.get(url % words)
    if ret.status_code == 200:
        RULE_TRANSLATE = re.compile('''([^\[\]]+?)\]\]''')
        match = RULE_TRANSLATE.search(ret.text)
        t, o, s, _ = match.group(1).split(u",")
        print u"译文:", t[1:-1]
        print u"发音:", s[1:-1]
        print ""
    else:
        raise Exception("Google翻译服务状态码异常。")
 
def tts(words):
    import subprocess
    url = "http://translate.google.cn/translate_tts?ie=UTF-8&q=%s&tl=en&total=1&idx=0&textlen=4&prev=input"
    ret = requests.get(url % words)
    if ret.status_code == 200:
        ext = ret.headers["content-type"].split("/")[1]
        filename = "tts.%s" % ext
        with open(filename, "wb") as f:
            f.write(ret.content)
        # 不显示mplayer的输出
        log_file = "./mplayer.log"
        with open(log_file, "w") as f:
            subprocess.call(["mplayer", filename], stdout=f, stderr=f)
    else:
        raise Exception("Google TTS服务状态码异常。")

def main(use_tts=True):
    while 1:
        #在window下raw_input不能直接提示中文,需要u"中文".encode("gbk")
        #为了与平台无关,这里直接提示"English:"
        words = raw_input("English:")
        if words == "x":
            break
        if use_tts:
            tts(words)
        translate(words)

if __name__ == "__main__":
    main(use_tts=True)
Python 相关文章推荐
Python编写检测数据库SA用户的方法
Jul 11 Python
Python自动连接ssh的方法
Mar 07 Python
浅谈Python实现贪心算法与活动安排问题
Dec 19 Python
Python2.7环境Flask框架安装简明教程【已测试】
Jul 13 Python
python射线法判断检测点是否位于区域外接矩形内
Jun 28 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
Python实现CAN报文转换工具教程
May 05 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
python实现不同数据库间数据同步功能
Feb 25 Python
浅谈pytorch中stack和cat的及to_tensor的坑
May 20 Python
python支持断点续传的多线程下载示例
Jan 16 #Python
python获得图片base64编码示例
Jan 16 #Python
python练习程序批量修改文件名
Jan 16 #Python
python使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 #Python
python使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 #Python
python3.3教程之模拟百度登陆代码分享
Jan 16 #Python
python解析发往本机的数据包示例 (解析数据包)
Jan 16 #Python
You might like
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
js禁止回车提交表单的示例代码
2013/12/23 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
用原生js做单页应用
2017/01/17 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
jQuery pjax 应用简单示例
2018/09/20 jQuery
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
python中随机函数random用法实例
2015/04/30 Python
关于Python数据结构中字典的心得
2017/12/04 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
初中英语教学反思
2014/01/25 职场文书
《秋游》教学反思
2014/04/24 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
借钱欠条怎么写
2015/07/03 职场文书
经典爱情感言
2015/08/03 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
Python如何配置环境变量详解
2021/05/18 Python
Python机器学习之决策树和随机森林
2021/07/15 Javascript
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python
讲解Python实例练习逆序输出字符串
2022/05/06 Python