手机
当前位置:查字典教程网 >脚本专栏 >python >python在命令行下使用google翻译(带语音)
python在命令行下使用google翻译(带语音)
摘要:说明1.使用google翻译服务获得翻译和语音;2.使用mplayer播放获得的声音文件,因此,如果要播放语音,请确保PATH中能够找到mp...

说明

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在命令行下使用google翻译(带语音)】相关文章:

pyqt4教程之widget使用示例分享

Python 命令行参数sys.argv

python列表与元组详解实例

python中使用smtplib和email模块发送邮件实例

python3使用urllib示例取googletranslate(谷歌翻译)

python使用cookielib库示例分享

二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)

Python 元类使用说明

python翻译软件实现代码(使用google api完成)

用python删除java文件头上版权信息的方法

精品推荐
分类导航