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

2021/6/13 14:22:02

本文主要是介绍C# .NET 讯飞机器翻译调用 详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

讯飞的官方文档:
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

感谢讯飞技术人员的支持



这篇关于C# .NET 讯飞机器翻译调用 详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程