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

本文档详细介绍了如何使用C#调用科大讯飞的机器翻译API。首先注册并获取API密钥,然后将翻译文本Base64编码并构造JSON请求体,接着计算签名和Digest,最后组装HTTP请求头并发送请求,获得翻译结果。文中还提供了具体的代码参考链接,帮助开发者理解并实现这一过程。
摘要由CSDN通过智能技术生成

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

感谢讯飞技术人员的支持

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值