接入接口前首先需要申请应用ID和应用秘钥,登录有道智云AI开放平台,创建应用,获取应用ID和秘钥。

定义接口响应类数据结构,接口实际返回内容和官方文档有点出入,大概是文档未更新吧。

以下是官方文档给出的说明:

以下是本人测试获取到的响应结构:

定义该数据结构:

[Serializable]
public class Response
{/// <summary>/// 单词校验后的结果 主要校验字母大小写、单词前含符号、中文简繁体/// </summary>public string[] returnPhrase;public string query;/// <summary>/// 错误返回码/// </summary>public string errorCode;/// <summary>/// 源语言和目标语言/// </summary>public string l;/// <summary>/// 翻译结果发音地址/// </summary>public string tSpeakUrl;/// <summary>/// 网络释义 不一定存在/// </summary>public Web[] web;public string requestId;/// <summary>/// 翻译结果/// </summary>public string[] translation;public URL dict;public URL webdict;/// <summary>/// 词义/// </summary>public Basic basic;public bool isWord;/// <summary>/// 源语言发音地址/// </summary>public string speakUrl;
}
[Serializable]
public class Web
{public string key;public string[] value;
}
[Serializable]
public class URL
{public string url;
}
[Serializable]
public class Basic
{public string phonetic;public string[] explains;
}

封装接口:

public class YoudaoTranslator
{//应用ID和应用秘钥 通过在平台创建应用获取private static readonly string appKey = "**********";private static readonly string appSecret = "********************";/// <summary>/// 将英文翻译为中文/// </summary>/// <param name="content">待翻译的文本</param>/// <param name="callback">回调函数</param>public static void EnglishToChinese(string content, Action<string> callback){Translate(content, "en", "zh-CHS", callback);}/// <summary>/// 将中文翻译为英文/// </summary>/// <param name="content">待翻译的文本</param>/// <param name="callback">回调函数</param>public static void ChineseToEnglish(string content, Action<string> callback){Translate(content, "zh-CHS", "en", callback);}/// <summary>/// 翻译/// 中文zh-CHS 英文en 日文ja 韩文ko 法文fr 德文de 俄文ru/// 其它语言查阅官方文档/// </summary>/// <param name="content">待翻译的文本</param>/// <param name="from">源语言</param>/// <param name="to">目标语言</param>/// <param name="callback">回调函数</param>public static void Translate(string content, string from, string to, Action<string> callback){HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://openapi.youdao.com/api");request.Method = "POST";request.ContentType = "application/x-www-form-urlencoded";//当前UTC时间戳(秒)string curtime = ((long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds / 1000).ToString();//UUID 唯一通用识别码string salt = DateTime.Now.Millisecond.ToString();string input = content == null ? null : content.Length <= 20 ? content : (content.Substring(0, 10) + content.Length + content.Substring(content.Length - 10, 10));byte[] inputBytes = Encoding.UTF8.GetBytes(appKey + input + salt + curtime + appSecret);byte[] hashedBytes = new SHA256CryptoServiceProvider().ComputeHash(inputBytes);//签名 sha256(应用ID + input + salt + curtime + 应用秘钥)//其中input的计算方式为:input=content前10个字符 + content长度 + cotent后10个字符(当cotent长度大于20)或 input=content字符串(当content长度小于等于20)string sign = BitConverter.ToString(hashedBytes).Replace("-", "");//签名类型string signType = "v3";//参数列表string args = string.Format("from={0}&to={1}&signType={2}&curtime={3}&q={4}&appKey={5}&salt={6}&sign={7}",from, to, signType, curtime, content, appKey, salt, sign);byte[] data = Encoding.UTF8.GetBytes(args);request.ContentLength = data.Length;using (Stream reqStream = request.GetRequestStream()){reqStream.Write(data, 0, data.Length);reqStream.Close();}HttpWebResponse httpWebResponse = (HttpWebResponse)request.GetResponse();Stream stream = httpWebResponse.GetResponseStream();using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)){string responseStr = reader.ReadToEnd();//Debug.Log(responseStr);//反序列化var response = JsonUtility.FromJson<Response>(responseStr);int errorCode = int.Parse(response.errorCode);switch (errorCode){case 0: if (response.translation.Length > 0) callback.Invoke(response.translation[0]); break;case 102: Debug.LogError($"不支持的语言类型"); break;case 103: Debug.LogError($"翻译文本过长"); break;case 108: Debug.LogError($"应用ID无效 注册账号登录后台创建应用和实例并完成绑定 可获得应用ID和应用密钥等信息"); break;case 113: Debug.LogError($"待翻译文本不能为空"); break;//其它错误代码含义查阅官方文档default: Debug.LogError($"翻译失败 错误代码[{errorCode}]"); break;}}}
}

测试:

public class Foo : MonoBehaviour
{private void Start(){YoudaoTranslator.EnglishToChinese("Hello everyone.", s => Debug.Log(s));YoudaoTranslator.ChineseToEnglish("测试", s => Debug.Log(s));}
}

Unity 接入有道智云AI - 文本翻译相关推荐

  1. python文本自动伪原创_Python调用有道智云文本翻译API接口实现“智能”伪原创

    随着人工智能的火热,互联网热门韭菜行业SEO也貌似进入了AI的快车道,尤其以智能伪原创超级热门,你会发现几乎是个seo工具网站都挂着智能伪原创的"狗头"招牌,抱着人无我有,人有我优 ...

  2. python翻译成中文_Python调用有道智云文本翻译API接口实现“智能”伪原创

    >> 开始伪原创中..\")"],[20,"\n","24:\"OL7j\"|36:131"],[20,&q ...

  3. c++调用python接口_Python调用有道智云文本翻译API接口实现“智能”伪原创

    >> 开始伪原创中..\")"],[20,"\n","24:\"OL7j\"|36:131"],[20,&q ...

  4. python分词考研英语真题词频(附结果)——读取word、nltk、有道智云API

    打算用python分析一次啊考研真题单词的词频,并加上翻译等内容,方便背诵 读取word文件 手头有近20年的考研英语一二真题word文件几十个,需要对每个文件的内容进行读取,并提取属于文章和题目的部 ...

  5. 有道智云智能语音服务全面升级 最多可支持44种语言和方言

    原标题:有道智云智能语音服务全面升级 最多可支持44种语言和方言 有道智云·AI开放平台智能语音服务全面升级,支持40多个小语种的语音识别.及翻译!现在开通注册即送50元体验金免费体验!戳一下了解详情 ...

  6. [zotero] PDF translate 有道智云API接入

    申请步骤 登录 https://ai.youdao.com/login.s 登录后 第一步:我们先创建应用 业务指南 → 应用总览 → 创建应用 应用名称:任意 选择服务:自然语言翻译服务 → 文本翻 ...

  7. 阿里云发布黑科技:面对海量的文本翻译任务,阿里翻译团队是如何解决的

    对国际化企业来说语言问题是亟待突破的重要关口.面对海量的文本翻译任务,昂贵低效的人工翻译显然不能满足需求,利用计算机自动进行文本翻译的机器翻译才是解决这个问题的关键.阿里翻译团队在机器翻译领域做了大量 ...

  8. 【Unity】AI实战应用——Unity接入GPT和对游戏开发实际应用的展望

    GPT for unity插件地址: GitHub - sunsvip/ChatGPTForUnity: ChatGPT for unity 用法: 打开Unity PackageManager界面. ...

  9. 腾讯AI开放平台使用尝试:代理后的文本翻译API使用方式

    这篇文章介绍一下如何结合代理服务器使用腾讯AI开放平台提供的文本翻译API. 目录 事前准备 请求参数 返回格式 示例代码 使用示例 常见问题 结果确认 总结 参考内容 事前准备 实现需要申请申请账号 ...

  10. Azure AI 服务之文本翻译

    当下人工智能可谓是风头正劲,几乎所有的大厂都有相关的技术栈.微软在 AI 领域自然也是投入了重注,并且以 Azure 认知服务的方式投入了市场: 也就是说作为开发者我们不需要学习太多 AI 的理论知识 ...

最新文章

  1. 解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)
  2. docker 内存 cpu 限制 简介
  3. Windows10彻底禁止更新
  4. Keepalived+Nginx 实现双机热备
  5. TabLayout+ViewPager实现选项卡动态滑动效果
  6. wxWidgets:使用 Open Watcom 编译的 WxWidgets 的 DLL 版本
  7. [转贴]玩你没商量:ADSL速率数字游戏解密
  8. 多线程编程(15) - 多线程同步之 WaitableTimer (等待定时器对象)[续]
  9. Python--简单的目录扫描脚本
  10. 夏普linux掌上电脑,夏普展示Ubuntu系统NetWalker PC-Z1[图文]
  11. 后端返回页面ajax的处理
  12. Linux下使用Nginx端口转发出现502错误的一种解决办法
  13. 洛谷——P1304 哥德巴赫猜想
  14. 如何写出兼容大部分浏览器的CSS 代码
  15. ie8兼容性视图灰色修复_win8系统设置IE8浏览器兼容性视图的方法
  16. 如何画分子结构的立体图
  17. GPS地图坐标转百度地图坐标
  18. 算法竞赛常见赛制及题目形式
  19. linux脚本的编写
  20. python-字符串补录

热门文章

  1. 安卓控制新大陆云平台(二)
  2. Latex:目录和标题
  3. 中国农业银行计算机专业笔试题,中国农业银行笔试题库
  4. 测试和开发怎么互转?
  5. 论文笔记:Bridging Textual and Tabular Data for Cross-Domain Text-to-SQL Semantic Parsing
  6. 曲线曲面基本理论(二)
  7. python 椭圆曲线加密_椭圆曲线加密算法
  8. 阻止中文输入时触发input事件
  9. java 方法签名是什么意思_Java中的方法签名是什么?
  10. python中remove函数是什么意思_python中remove函数的用法是什么?