.net core 和 WPF 开发升讯威在线客服系统:调用有道翻译接口实现实时自动翻译的方法
- 2022 年 2 月 21 日
- 筆記
业余时间用 .net core 写了一个在线客服系统。并在博客园写了一个系列的文章,写介绍这个开发过程。
我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免费和分享,后来我索性就官方发了一个私有化版直接给别人下载。希望能够打造: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。
2021年下半年,陆续有朋友联系我,表示从事外贸行业,希望客服系统能够实现客服与访客之间双向的实时自动翻译。
一开始我想的比较复杂,拖着没做这个功能,后来询问的朋友越来越多,我仔细调研了一下这个需求,发现通过公有云上的接口实现起来,非常的简单!整个对接实现过程不夸张的说,10 分钟就完成了。
本文将详细的介绍百度翻译接口的注册、开通、对接全过程,以及 源代码 ,希望对你有用。
先看实现效果
客服端程序以原文和译文对照的方式显示。
访客端以访客语言显示。
以设置默认翻译所有访客的消息,也可以由客服根据不同访客自行决定是否翻译。
简介
升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。
完整私有化包下载地址
钟意的话请给个赞支持一下吧,谢谢~
安装部署说明书
📕 //docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269
有道翻译的对接使用
有道翻译注册认证过程较为简单,但其所允许的 QPS(每秒请求数量)不详,翻译质量较百度略差。
访问有道智云,注册账户并认证。
创建文本翻译应用
选择“自然语言翻译服务”下的“文本翻译”,点击“创建应用”按钮。
在创建应用画面,勾选“文本翻译”,接入方式选择“API”。其它信息按需填写。
获取 应用ID 和 密钥
在应用总览画面中,查看应用的 应用ID
和 密钥
,将其保存备用,在随后的客服系统主程序配置中使用。
使用 C# 调用翻译接口
有道接口说明
文本翻译API接口提供有道的翻译服务,包含了中英翻译和小语种翻译功能。只需要通过调用文本翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。
文本翻译API HTTPS地址:
传输方式 HTTPS
请求方式 GET/POST
字符编码 统一使用UTF-8 编码
请求格式 表单
响应格式 JSON
接口调用参数
调用API需要向接口发送以下字段来访问服务。
字段名 类型 含义 必填 备注
q text 待翻译文本 True 必须是UTF-8编码
from text 源语言 True 参考下方 支持语言 (可设置为auto)
to text 目标语言 True 参考下方 支持语言 (可设置为auto)
appKey text 应用ID True 可在 应用管理 查看
salt text UUID True uuid,唯一通用识别码
sign text 签名 True sha256(应用ID+input+salt+curtime+应用密钥)
signType text 签名类型 True v3
curtime text 当前UTC时间戳(秒) true TimeStamp
ext text 翻译结果音频格式,支持mp3 false mp3
voice text 翻译结果发音选择 false 0为女声,1为男声。默认为女声
strict text 是否严格按照指定from和to进行翻译:true/false false 如果为false,则会自动中译英,英译中。默认为false
vocabId text 用户上传的词典 false 用户指定的词典 out_id,目前支持英译中
签名生成方法如下:
signType=v3;
sign=sha256(应用ID+input+salt+curtime+应用密钥);
其中,input的计算方式为:input=q前10个字符 + q长度 + q后10个字符(当q长度大于20)或 input=q字符串(当q长度小于等于20);
使用good单词查询作为示例进行说明:
输出结果与FROM和TO的值有关:
- 当FROM和TO的值都在{zh-CHS, EN}范围内时
{
"errorCode":"0",
"query":"good", //查询正确时,一定存在
"translation": [ //查询正确时一定存在
"好"
],
"basic":{ // 有道词典-基本词典,查词时才有
"phonetic":"gʊd",
"uk-phonetic":"gʊd", //英式音标
"us-phonetic":"ɡʊd", //美式音标
"uk-speech": "XXXX",//英式发音
"us-speech": "XXXX",//美式发音
"explains":[
"好处",
"好的",
"好",
]
},
"web":[ // 有道词典-网络释义,该结果不一定存在
{
"key":"good",
"value":["良好","善","美好"]
},
{...}
],
"dict":{
"url":"yddict://m.youdao.com/dict?le=eng&q=good"
},
"webdict":{
"url":"//m.youdao.com/dict?le=eng&q=good"
},
"l":"EN2zh-CHS",
"tSpeakUrl":"XXX",//翻译后的发音地址
"speakUrl": "XXX" //查询文本的发音地址
}
- 当FROM和TO的值有在{zh-CHS, EN}范围外的时候
{
"errorCode": "0",
"translation": ["大丈夫です"], //小语种翻译,一定存在
"dict":{
"url":"yddict://m.youdao.com/dict?le=jap&q=%E6%B2%A1%E5%85%B3%E7%B3%BB%E3%80%82"
},
"webdict":{
"url":"//m.youdao.com/dict?le=jap&q=%E6%B2%A1%E5%85%B3%E7%B3%BB%E3%80%82"
},
"l":"zh-CHS2ja",
"tSpeakUrl":"XXX",//翻译后的发音地址
"speakUrl": "XXX" //查询文本的发音地址
}
升讯威在线客服与营销系统希望能够打造: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。
完整私有化包下载地址
钟意的话请给个赞支持一下吧,谢谢~
安装部署说明书
📕 //docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269