Unity 接入有道智云AI - 文本翻译

简介: Unity 接入有道智云AI - 文本翻译

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

image.gif

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

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

image.gif

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

image.gif

定义该数据结构:

[Serializable]
publicclassResponse{
/// <summary>/// 单词校验后的结果 主要校验字母大小写、单词前含符号、中文简繁体/// </summary>publicstring[] returnPhrase;
publicstringquery;
/// <summary>/// 错误返回码/// </summary>publicstringerrorCode;
/// <summary>/// 源语言和目标语言/// </summary>publicstringl;
/// <summary>/// 翻译结果发音地址/// </summary>publicstringtSpeakUrl;
/// <summary>/// 网络释义 不一定存在/// </summary>publicWeb[] web;
publicstringrequestId;
/// <summary>/// 翻译结果/// </summary>publicstring[] translation;
publicURLdict;
publicURLwebdict;
/// <summary>/// 词义/// </summary>publicBasicbasic;
publicboolisWord;
/// <summary>/// 源语言发音地址/// </summary>publicstringspeakUrl;
}
[Serializable]
publicclassWeb{
publicstringkey;
publicstring[] value;
}
[Serializable]
publicclassURL{
publicstringurl;
}
[Serializable]
publicclassBasic{
publicstringphonetic;
publicstring[] explains;
}

image.gif

封装接口:

publicclassYoudaoTranslator{
//应用ID和应用秘钥 通过在平台创建应用获取privatestaticreadonlystringappKey="**********";
privatestaticreadonlystringappSecret="********************";
/// <summary>/// 将英文翻译为中文/// </summary>/// <param name="content">待翻译的文本</param>/// <param name="callback">回调函数</param>publicstaticvoidEnglishToChinese(stringcontent, Action<string>callback)
    {
Translate(content, "en", "zh-CHS", callback);
    }
/// <summary>/// 将中文翻译为英文/// </summary>/// <param name="content">待翻译的文本</param>/// <param name="callback">回调函数</param>publicstaticvoidChineseToEnglish(stringcontent, 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>publicstaticvoidTranslate(stringcontent, stringfrom, stringto, Action<string>callback)
    {
HttpWebRequestrequest= (HttpWebRequest)WebRequest.Create("https://openapi.youdao.com/api");
request.Method="POST";
request.ContentType="application/x-www-form-urlencoded";
//当前UTC时间戳(秒)stringcurtime= ((long)(DateTime.UtcNow-newDateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds/1000).ToString();
//UUID 唯一通用识别码stringsalt=DateTime.Now.Millisecond.ToString();
stringinput=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=newSHA256CryptoServiceProvider().ComputeHash(inputBytes);
//签名 sha256(应用ID + input + salt + curtime + 应用秘钥)//其中input的计算方式为:input=content前10个字符 + content长度 + cotent后10个字符(当cotent长度大于20)或 input=content字符串(当content长度小于等于20)stringsign=BitConverter.ToString(hashedBytes).Replace("-", "");
//签名类型stringsignType="v3";
//参数列表stringargs=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 (StreamreqStream=request.GetRequestStream())
        {
reqStream.Write(data, 0, data.Length);
reqStream.Close();
        }
HttpWebResponsehttpWebResponse= (HttpWebResponse)request.GetResponse();
Streamstream=httpWebResponse.GetResponseStream();
using (StreamReaderreader=newStreamReader(stream, Encoding.UTF8))
        {
stringresponseStr=reader.ReadToEnd();
//Debug.Log(responseStr);//反序列化varresponse=JsonUtility.FromJson<Response>(responseStr);
interrorCode=int.Parse(response.errorCode);
switch (errorCode)
            {
case0: if (response.translation.Length>0) callback.Invoke(response.translation[0]); break;
case102: Debug.LogError($"不支持的语言类型"); break;
case103: Debug.LogError($"翻译文本过长"); break;
case108: Debug.LogError($"应用ID无效 注册账号登录后台创建应用和实例并完成绑定 可获得应用ID和应用密钥等信息"); break;
case113: Debug.LogError($"待翻译文本不能为空"); break;
//其它错误代码含义查阅官方文档default: Debug.LogError($"翻译失败 错误代码[{errorCode}]"); break;
            }
        }
    }
}

image.gif

测试:

publicclassFoo : MonoBehaviour{
privatevoidStart()
    {
YoudaoTranslator.EnglishToChinese("Hello everyone.", s=>Debug.Log(s));
YoudaoTranslator.ChineseToEnglish("测试", s=>Debug.Log(s));
    }
}

image.gif

image.gif

目录
相关文章
|
5月前
|
人工智能 自然语言处理 算法
科研论文翻译神器!BabelDOC:开源AI工具让PDF论文秒变双语对照,公式图表全保留
BabelDOC 是一款专为科学论文设计的开源AI翻译工具,采用先进的无损解析技术和智能布局识别算法,能完美保留原文格式并生成双语对照翻译。
1822 67
科研论文翻译神器!BabelDOC:开源AI工具让PDF论文秒变双语对照,公式图表全保留
|
7月前
|
人工智能 API 语音技术
VideoCaptioner:北大推出视频字幕处理神器,AI自动生成+断句+翻译,1小时工作量5分钟搞定
VideoCaptioner 是一款基于大语言模型的智能视频字幕处理工具,支持语音识别、字幕断句、优化、翻译全流程处理,并提供多种字幕样式和格式导出。
1158 89
VideoCaptioner:北大推出视频字幕处理神器,AI自动生成+断句+翻译,1小时工作量5分钟搞定
|
4月前
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
1139 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
|
5月前
|
人工智能
WEB CAD 利用AI编程实现多行文本的二次开发
本文介绍了在MxCAD插件中实现自定义编辑器实体类的功能,重点展示如何通过MxCADMText类在CAD中渲染和管理富文本。文章详细说明了注册同心圆实体文本的步骤,包括实现自定义文本类、注册自定义文本以及交互式修改参数的方法。此外,还扩展实践了粗糙度实体文本的注册与应用,涵盖构造粗糙度自定义实体文本类、注册及初始化过程,并通过示例图展示了运行效果。这些功能可帮助用户将复杂图形以文本形式插入多行文本中,提升项目设计效率。
|
6月前
|
人工智能 API 语音技术
WhisperChain:开源 AI 实时语音转文字工具!自动消噪优化文本,效率翻倍
WhisperChain 是一款基于 Whisper.cpp 和 LangChain 的开源语音识别工具,能够实时将语音转换为文本,并自动清理和优化文本内容,适用于会议记录、写作辅助等多种场景。
1844 2
WhisperChain:开源 AI 实时语音转文字工具!自动消噪优化文本,效率翻倍
|
7月前
|
人工智能 自然语言处理 搜索推荐
浙大通义联手推出慢思考长文本生成框架OmniThink,让AI写作突破知识边界
随着大模型(LLMs)的发展,AI 写作取得了较大进展。然而,现有的方法大多依赖检索知识增强生成(RAG)和角色扮演等技术,其在信息的深度挖掘方面仍存在不足,较难突破已有知识边界,导致生成的内容缺乏深度和原创性。
403 46
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
通古大模型:古籍研究者狂喜!华南理工开源文言文GPT:AI自动断句+写诗翻译,24亿语料喂出来的学术神器
通古大模型由华南理工大学开发,专注于古籍文言文处理,具备强大的古文句读、文白翻译和诗词创作功能。
1053 11
通古大模型:古籍研究者狂喜!华南理工开源文言文GPT:AI自动断句+写诗翻译,24亿语料喂出来的学术神器
|
7月前
|
人工智能 数据可视化
文本、图像、点云任意模态输入,AI能够一键生成高质量CAD模型了
《CAD-MLLM: Unifying Multimodality-Conditioned CAD Generation With MLLM》提出了一种新型系统CAD-MLLM,能够根据文本、图像、点云或其组合生成高质量的CAD模型。该系统基于大型语言模型(LLM),通过多模态数据对齐和渐进式训练策略,实现了高效的CAD模型生成。作者创建了首个包含文本、图像、点云和命令序列的多模态数据集Omni-CAD,包含约450K个实例。实验表明,CAD-MLLM在多个任务上表现出色,特别是在点云条件生成任务中显著优于现有方法。未来工作将聚焦于提升计算效率、增加数据多样性及探索新模态。
651 18
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
三行代码实现实时语音转文本,支持自动断句和语音唤醒,用 RealtimeSTT 轻松创建高效语音 AI 助手
RealtimeSTT 是一款开源的实时语音转文本库,支持低延迟应用,具备语音活动检测、唤醒词激活等功能,适用于语音助手、实时字幕等场景。
1803 18
三行代码实现实时语音转文本,支持自动断句和语音唤醒,用 RealtimeSTT 轻松创建高效语音 AI 助手
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
VideoWorld:字节开源自回归视频生成模型,支持输入视频指导AI生成视频!弥补文本生成视频的短板
VideoWorld 是由字节跳动、北京交通大学和中国科学技术大学联合推出的自回归视频生成模型,能够从未标注的视频数据中学习复杂知识,支持长期推理和规划任务。
783 8
VideoWorld:字节开源自回归视频生成模型,支持输入视频指导AI生成视频!弥补文本生成视频的短板

热门文章

最新文章