讯飞的官方文档:
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
感谢讯飞技术人员的支持