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

目录
相关文章
|
4月前
|
机器学习/深度学习 数据采集 人工智能
探索AI技术在文本生成中的应用与挑战
【9月更文挑战第26天】本文深入探讨了AI技术在文本生成领域的应用,并分析了其面临的挑战。通过介绍AI文本生成的基本原理、应用场景以及未来发展趋势,帮助读者全面了解该技术的潜力和局限性。同时,文章还提供了代码示例,展示了如何使用Python和相关库实现简单的文本生成模型。
121 9
|
10天前
|
人工智能 文字识别 API
|
1天前
|
机器学习/深度学习 人工智能 编解码
VideoVAE+:AI 生成视频高保真重建和跨模态重建工具,基于文本信息指导视频重建,提升视频细节质量
VideoVAE+ 是香港科技大学推出的先进跨模态视频变分自编码器,通过时空分离压缩机制和文本指导,实现了高效视频压缩与精准重建。
25 7
VideoVAE+:AI 生成视频高保真重建和跨模态重建工具,基于文本信息指导视频重建,提升视频细节质量
|
5天前
|
人工智能 自然语言处理 决策智能
DRT-o1:腾讯推出专注于文学翻译的 AI 模型,擅长理解比喻和隐喻等修辞手法,在翻译时保留原文的情感色彩
DRT-o1 是腾讯研究院推出的文学翻译系列 AI 模型,通过长链思考推理技术显著提升翻译质量,特别擅长处理比喻和隐喻等修辞手法。
33 2
DRT-o1:腾讯推出专注于文学翻译的 AI 模型,擅长理解比喻和隐喻等修辞手法,在翻译时保留原文的情感色彩
|
21天前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
122 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
Llama 3.3:Meta AI 开源新的纯文本语言模型,专注于多语言对话优化
Meta AI推出的Llama 3.3是一款70B参数的纯文本语言模型,支持多语言对话,具备高效、低成本的特点,适用于多种应用场景,如聊天机器人、客户服务自动化、语言翻译等。
77 13
Llama 3.3:Meta AI 开源新的纯文本语言模型,专注于多语言对话优化
|
24天前
|
机器学习/深度学习 人工智能
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
SNOOPI是一个创新的AI文本到图像生成框架,通过增强单步扩散模型的指导,显著提升模型性能和控制力。该框架包括PG-SB和NASA两种技术,分别用于增强训练稳定性和整合负面提示。SNOOPI在多个评估指标上超越基线模型,尤其在HPSv2得分达到31.08,成为单步扩散模型的新标杆。
66 10
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
MMAudio:开源 AI 音频合成项目,根据视频或文本生成同步的音频
MMAudio 是一个基于多模态联合训练的高质量 AI 音频合成项目,能够根据视频内容或文本描述生成同步的音频。该项目适用于影视制作、游戏开发、虚拟现实等多种场景,提升用户体验。
78 7
MMAudio:开源 AI 音频合成项目,根据视频或文本生成同步的音频
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
Voice-Pro是一款开源的多功能音频处理工具,集成了语音转文字、文本转语音、实时翻译、YouTube视频下载和人声分离等多种功能。它支持超过100种语言,适用于教育、娱乐和商业等多个领域,为用户提供一站式的音频处理解决方案,极大地提高工作效率和音频处理的便捷性。
110 10
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
|
2月前
|
人工智能 自然语言处理 知识图谱
英伟达nGPT重塑Transformer,AI训练速度暴增20倍!文本越长,加速越快
英伟达提出nGPT(Normalized Transformer),通过单位范数归一化和超球面上的表示学习,显著提升了Transformer模型的训练速度和性能。实验显示,nGPT在处理4k长度序列时,训练速度比传统Transformer快10倍,且在多个下游任务中表现出色。论文地址:https://arxiv.org/pdf/2410.01131
42 12