首页 > 其他分享 >有道智云翻译

有道智云翻译

时间:2023-06-02 09:56:10浏览次数:49  
标签:翻译 return algorithm 有道 html import 智云 hash

一、文档

https://ai.youdao.com/DOCSIRMA/html/trans/api/wyfy/index.html

二、示例

# -*- coding: utf-8 -*-
import sys
import uuid
import requests
import hashlib
import time
from importlib import reload
import json

import time

reload(sys)

# 有道翻译地址
YOUDAO_URL = 'https://openapi.youdao.com/translate_html'
# 替换为您的应用ID
APP_KEY = ''
# 替换为您的密钥
APP_SECRET = ''

''' sha256加密 '''
def encrypt(signStr):
    hash_algorithm = hashlib.sha256()
    hash_algorithm.update(signStr.encode('utf-8'))
    return hash_algorithm.hexdigest()

''' 判断长度 '''
def truncate(q):
    if q is None:
        return None
    size = len(q)
    return q if size <= 20 else q[0:10] + str(size) + q[size - 10:size]

''' 开始翻译 '''
def do_request(data):
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    return requests.post(YOUDAO_URL, data=data, headers=headers)

def connect(keywords, to='en', _from='zh-CHS'):
    if not keywords:
        return ''
    q = keywords
    data = {}
    data['from'] = _from
    data['to'] = to
    data['signType'] = 'v3'
    curtime = str(int(time.time()))
    data['curtime'] = curtime
    salt = str(uuid.uuid1())
    signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET
    sign = encrypt(signStr)
    data['appKey'] = APP_KEY
    data['q'] = q
    data['salt'] = salt
    data['sign'] = sign

    response = do_request(data)
    contentType = response.headers['Content-Type']
    if contentType == "audio/mp3":
        millis = int(round(time.time() * 1000))
        filePath = "合成的音频存储路径" + str(millis) + ".mp3"
        fo = open(filePath, 'wb')
        fo.write(response.content)
        fo.close()
    else:
        json_obj = json.loads(response.content)
        # print(json_obj)
        if json_obj.get('errorCode') == '0':
            return json_obj.get('data').get('translation')
        elif json_obj.get('errorCode') == '500':
            if json_obj.get('errorMessage') == '30':
                # 翻译失败
                return q
            print("errorMessage = " + json_obj.get('errorMessage'))
        # 其他情况返回空
        return ''

if __name__ == '__main__':
    data = connect("公司专业生产的PVC套管", 'en')
    print(data)

 

标签:翻译,return,algorithm,有道,html,import,智云,hash
From: https://www.cnblogs.com/yang-2018/p/17450946.html

相关文章

  • 语音翻译软件,语音翻译软件推荐!​
    语音翻译软件,语音翻译是一种将口语语言转化为另一种口语语言的技术。它使用了语音识别技术将声音转化为文字,并使用机器翻译技术将文本翻译成目标语言的文本,最后将目标语言的文本转化为口语输出,这种操作一般需要专业的软件来进行,下面小编也是给大家整理了一下,感兴趣的小伙伴一起来看......
  • 论文翻译和润色工具
    先用翻译软件翻译成英文(deepl)然后一段一段把那个扔进chatgpt,网上应该有很多例子,教你怎么使用咒语(https://www.jianshu.com/p/f228222f623b)最后用grammaly检查一下语法  1翻译DeepL翻译:全世界最准确的翻译https://www.deepl.com/translator  2润色 chatg......
  • 【cplusplus教程翻译】动态内存
    定义变量使用的内存在程序运行前就确定了,有些时候我们希望能在运行期得到内存,可以使用操作符new和deletenew和new[]new操作符可以分配动态内存,new后面需要跟着数据类型,如果需要多个该数据类型的元素,还需加上方括号,这个操作符返回的是新分配内存的头指针,语法是pointer=newtype......
  • 【cpluscplus教程翻译】函数(Functions)
    使用函数,可以独立完成代码任务在c++中,函数是指有名字的语句组,可以被程序的其他点调用最常见的定义函数语法为(也可以使用lambda表达式和重载调用操作符)typename(parameter1,parameter2,...){statements}type是返回值类型,name是函数名,parameter是参数,statements是函数体......
  • MassTransit类库Saga文档翻译
    翻译自SagaStateMachinesSagaStateMachines(状态机)SagaStateMachines(状态机)以前被称为Automatonymous,从v8开始被合并到masstrtransit代码库中。介绍Automatonymous是.Net的StateMachines(状态机)类库,它提供了一种C#语法来定义StateMachines,包括状态、事件和行为......
  • 【cplusplus教程翻译】指针(Pointers)
    在前面的章节中,变量被解释为计算机内存中的位置,可以通过其标识符(名称)访问这些位置。这样,程序就不需要关心内存中数据的物理地址;只要需要引用变量,它就简单地使用标识符。对于C++程序来说,计算机的内存就像一系列的存储单元,每个存储单元的大小都是一个字节,并且每个存储单元都有一个......
  • 替换掉tex文件的关键字以便于翻译
    遇到的问题:找到了一篇文献的Tex文件,尝试使用翻译软件翻译成中文以便于阅读,但机翻会极其智障地把不该翻译的也给翻译了,比如\begin{document}给翻译成了\开始{文档}因此,尝试使用正则表达式将Tex中没有必要翻译的关键字与公式给替换掉(1)将关键字替换掉#将Tex文件的关键字......
  • Node翻译i18n多语言文件,1分钟生成100种语言包
    前言在需要国际化的项目中经常会遇到写完代码后需要将文案翻译到其他很多国家语言,人工翻译再复制文案到对应json或js/ts文件,这样将会浪费大量时间且非常枯燥,所以很有必要开发一款node插件,将这些重复乏味的工作交给机器完成。话不多说,先展示成品再讲原理插件链接https:/......
  • 我们最近革新了整个翻译流程
    目前的机器翻译而言,把握句子结构是没问题的,也就是说译文能做到通顺,但是专有名词把握不准。虽然这样的机器翻译能够大大缩短译者的校对时间,但仍然做不到一天翻译一本书的程度。对于996的打工人来说,非常耗费精力。虽然大语言模型的去中心化开展的如火如荼,一些模型已经可以在本地......
  • prophet翻译(八)--- 异常值
    异常值异常值可以影响Prophet的预测结果,主要有两种方式。下面的示例中,我们使用之前提到的R页面的日志化维基百科访问量数据进行预测,但添加了一段错误的数据:#Pythondf=pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_R_outl......