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

目录
相关文章
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在文本生成中的应用
【8月更文挑战第31天】本文深入探讨了人工智能(AI)在文本生成领域的应用,包括自动写作、聊天机器人和内容创作。我们将分析AI技术如何改变我们创建和消费文本的方式,并讨论其对传统写作行业的影响。通过实例演示,我们将展示如何使用Python编程语言和自然语言处理库来实现一个简单的文本生成模型。
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在文本生成中的应用
【8月更文挑战第26天】本文将探讨人工智能(AI)在文本生成领域的应用。我们将介绍AI如何通过自然语言处理(NLP)和机器学习(ML)技术,实现自动生成高质量文本内容的能力。文章将详细解释AI文本生成的基本原理,包括预训练模型、神经网络架构以及训练和优化过程。我们还将讨论AI文本生成技术的局限性和未来发展方向,并提供一些实际的应用案例。
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在文本生成中的应用与挑战自动化测试框架的搭建与实践
【8月更文挑战第27天】本文将深入探讨人工智能(AI)在文本生成领域的应用,包括其技术原理、实际应用案例以及面临的主要挑战。通过分析AI文本生成的工作原理和实际效果,我们将揭示这项技术如何改变内容创作、新闻撰写、对话系统等多个领域。同时,我们也将讨论AI文本生成带来的伦理和质量问题,以及如何平衡创新与风险,确保技术的健康发展。
|
1天前
|
机器学习/深度学习 人工智能 编解码
深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
【9月更文挑战第2天】深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
 深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在文本生成中的应用
【8月更文挑战第1天】本文将深入探讨人工智能(AI)在文本生成领域的应用,包括技术原理、实现方法以及实际应用案例。我们将通过代码示例,展示如何使用机器学习和自然语言处理技术来生成高质量的文本内容。无论你是AI初学者还是专业人士,这篇文章都将为你提供有价值的信息和启发。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在文本情感分析中的应用
【8月更文挑战第40天】本文将深入探讨人工智能在文本情感分析领域的强大应用。我们将从基础概念出发,逐步深入到技术实现,最终通过一个Python代码示例具体展示如何使用自然语言处理库进行情感分析。文章旨在为读者提供一个清晰的指南,了解并实践如何利用AI技术解读和评估文本中的情感色彩。
|
3天前
|
人工智能 Linux iOS开发
AI超强语音转文本SenseVoice,本地化部署教程!
【9月更文挑战第7天】以下是AI超强语音转文本工具SenseVoice的本地化部署教程:首先确保服务器或计算机满足硬件和软件要求,包括处理器性能、内存及操作系统等。接着从官网下载适合的安装包,并按操作系统进行安装。配置音频输入设备和语言模型后,启动SenseVoice并测试其语音转文本功能。最后根据实际使用情况进行优化调整,并定期更新以获取最新功能。详细步骤需参照官方文档。
|
13天前
|
人工智能 自然语言处理 Python
探索AI在文本情感分析中的应用
【8月更文挑战第30天】本文将介绍如何利用人工智能技术进行文本情感分析,并展示一个实际的代码示例。我们将使用Python编程语言和自然语言处理库来实现一个简单的情感分析模型。通过这篇文章,读者将了解到如何使用AI技术来分析和理解文本中的情感。
25 1
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在文本生成中的应用与挑战
【8月更文挑战第31天】本文将探讨AI技术在文本生成领域的应用及其面临的挑战。我们将介绍一些常见的文本生成算法,并通过代码示例展示如何使用这些算法进行文本生成。最后,我们将讨论AI技术在文本生成领域所面临的挑战和未来发展方向。
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在文本情感分析中的应用
【8月更文挑战第31天】 本文将深入探讨人工智能在文本情感分析领域的强大应用。我们将从基础概念出发,逐步深入到技术实现,最终通过一个Python代码示例具体展示如何使用自然语言处理库进行情感分析。文章旨在为读者提供一个清晰的指南,了解并实践如何利用AI技术解读和评估文本中的情感色彩。