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

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

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

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

基本流程如图:
C# .NET 讯飞机器翻译调用 详解
语言支持列表:

语言名称 缩写
汉语普通话 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

感谢讯飞技术人员的支持

上一篇:初学者的Python框架


下一篇:springboot项目默认单元测试类没有run方法,无法执行单元测试方法