ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# .NET 讯飞机器翻译调用 详解

2021-06-13 12:59:46  阅读:437  来源: 互联网

标签:cn C# json 机器翻译 xfyun SHA host NET digest


讯飞的官方文档:
https://www.xfyun.cn/doc/nlp/xftrans/API.html

文档中没有C# .Net的示例,因此我来做一个。

首先还是一样去
https://www.xfyun.cn/service/xftrans
注册一个试用的API,并开通机器翻译
得到appid, apikey和apisecret

基本流程如图:
在这里插入图片描述
语言支持列表:

语言名称缩写
汉语普通话cn
英语en
彝语ii
广东话yue
日语ja
俄语ru
法语fr
西班牙语es
阿拉伯语ar

首先apikey,源语言,目标语言加要翻译的字串的base64码四项合在一起组成json格式request body
我这里要翻译的字串是

今天天气怎么样?

组合成Json

{"common":{"app_id":"bddb2ece"},"business":{"from":"cn","to":"en"},"data":{"text":"5LuK5aSp5aSp5rCU5oCO5LmI5qC377yf"}}

Json string 通过sha256计算后进行base64编码,并再前面加上SHA-256=
作为digest

SHA-256=2914KHGUCAu4TIVDxqRs3Zy55EXa8hZ0kyFEE+4rMdg=

同时记录一个UTC时间

Sun, 13 Jun 2021 04:19:27 GMT

时间,digest,host,path合成digest原始字串

host: itrans.xfyun.cn
date: Sun, 13 Jun 2021 04:19:27 GMT
POST /v2/its HTTP/1.1
digest: SHA-256=2914KHGUCAu4TIVDxqRs3Zy55EXa8hZ0kyFEE+4rMdg=

digest原始字串,使用apisecret进行hmacsha256计算并将结果进行base64编码,即得到signature

2Xk/mw8HwY6salSzqbSjkFeE69Z3NVW+pAhlNFrVDK4=

合成Authorization string

api_key="myapikey", algorithm="hmac-sha256", headers="host date request-line digest", signature="2Xk/mw8HwY6salSzqbSjkFeE69Z3NVW+pAhlNFrVDK4="

signature,Date,host,Authorization 加入request header

{Content-Type: application/json
Accept: application/json
Date: Sun, 13 Jun 2021 04:19:27 GMT
Digest: SHA-256=2914KHGUCAu4TIVDxqRs3Zy55EXa8hZ0kyFEE+4rMdg=
Authorization: api_key="myapikey", algorithm="hmac-sha256", headers="host date request-line digest", signature="2Xk/mw8HwY6salSzqbSjkFeE69Z3NVW+pAhlNFrVDK4="
}

把json发给host
https://itrans.xfyun.cn/v2/its

从response得到json返回结果

{
  "code": 0,
  "message": "success",
  "sid": "its....",
  "data": {
    "result": {
      "from": "cn",
      "to": "en",
      "trans_result": {
        "dst": "What's the weather like today?",
        "src": "今天天气怎么样?"
      }
    }
  }
}

调用完成

具体代码参考:
https://github.com/Dark-20001/xfyun-trans

感谢讯飞技术人员的支持

标签:cn,C#,json,机器翻译,xfyun,SHA,host,NET,digest
来源: https://blog.csdn.net/dark_2001/article/details/117872854

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有