源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-07-23 22:34 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python在命令行下使用google翻译(带语音)
说明 1. 使用google翻译服务获得翻译和语音; 2. 使用mplayer播放获得的声音文件,因此,如果要播放语音,请确保PATH中能够找到mplayer程序,如果没有mplayer,请将use_tts设置为False运行。即: main(use_tts=False) 3. 退出程序,输入"x",回车。
[u]复制代码[/u] 代码如下:
#! /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)
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部