2024/02/29 14:00:25
插件独有 API
除了声网 Web SDK 提供的插件相关方法以外,每个插件会根据具体功能提供独有的 API。本文介绍讯飞转写及翻译插件的独有 API。
方法
setOptions
TypeScript
setOptions(common, ist, its, callback): void
设置插件功能相关参数。每个参数的详细解释如下。
common
鉴权配置对象。
JavaScript
let common = {
// 分别传入购买和激活插件时从声网控制台获取的 appKey、appSecret、appId
apiKey: 'aaaaaaaaa',
apiSecret: 'bbbbbbb',
appId: '7777'
}
ist
语音转写配置对象。
JavaScript
let ist = {
url: 'wss://ist-api.xfyun.cn/v2/ist',
req: {
// 业务对象。必选。
"business": {
// 语种。必选。"中译英":"zh_cn";"英译中":"zh_cn"。
"language": (string),
// 口音。必选。"中译英":"mandarin";"英译中":"mandarin"。
"accent": (string),
// 领域。必选。"中译英":"ist_ed_open";"英译中":"ist_ed_open"。
"domain": (string),
// 语言类型
// 值类型:int
// 值范围:
// 1:中英文模式,中文英文均可识别;
// 3:英文模式,只识别出英文
// 值默认:1
// "中译英":1;"英译中":3。
"language_type": (int),
// 动态修正。"wpgs"。
"dwa": (string)
}
}
}
其中,支持的语种所对应的 language
、accent
、domain
和 language_type
的设置参考下表:
实时转写语种 | language | accent | domain | language_type |
---|---|---|---|---|
中英文混合 | zh_cn | mandarin | ist_ed_open | 语言过滤筛选:
|
德语 | de_de | mandarin | ist_hy | 无需设置 |
阿拉伯语 | ar_il | mandarin | ist_open | 无需设置 |
西班牙语 | es_es | mandarin | ist_open | 无需设置 |
法语 | fr_fr | mandarin | ist_open | 无需设置 |
意大利语 | it_IT | mandarin | ist_open | 无需设置 |
日语 | ja_jp | mandarin | ist_open | 无需设置 |
韩语 | ko_kr | mandarin | ist_open | 无需设置 |
俄语 | ru_ru | mandarin | ist_open | 无需设置 |
泰语 | th_TH | mandarin | ist_open | 无需设置 |
越南语 | vi_vn | mandarin | ist_open | 无需设置 |
粤语 | zh_cn | cantonese | ist_open | 无需设置 |
西南官话(包含四川、重庆、云南、贵州) | zh_cn | xinanese | ist_open | 无需设置 |
河南话 | zh_cn | henanese | ist_open | 无需设置 |
印尼语 | id_id | mandarin | ist_hy | 无需设置 |
文本翻译支持的源语 from
和目标语 to
如下:
- 中文与其它语种互译
- 英语与其他语种互译
语种 | 参数 |
---|---|
中文 | cn |
英语 | en |
日语 | ja |
韩语 | ko |
泰语 | th |
斯拉夫语系 |
|
越系 |
|
印欧语系 |
|
阿拉伯语系 |
|
印地语系 |
|
外蒙哈系 |
|
突厥语系 |
|
希腊语系 |
|
维语 | ug |
藏语 | za |
粤语 | yue |
彝语 | ii |
壮语 | zua |
内蒙语 | mn |
内哈萨克语 | kka |
方言系 |
|
南非荷兰语 | af |
阿姆哈拉语 | am |
加泰罗尼亚语 | ca |
丹麦语 | da |
克罗地亚语 | hr |
冰岛语 | is |
爪哇语 | jv |
高棉语 | km |
老挝语 | lo |
立陶宛语 | lt |
拉脱维亚语 | lv |
马拉雅拉姆语 | ml |
马拉地语 | mr |
缅甸语 | my |
博克马尔挪威语 | nb |
尼泊尔语 | ne |
僧伽罗语 | si |
斯洛伐克语 | sk |
斯洛文尼亚语 | sl |
塞尔维亚语 | sr |
巽他语 | su |
泰米尔语 | ta |
泰卢固语 | te |
塔吉克语 | tg |
土库曼语 | tk |
互译语种 | 参数 |
---|---|
英日互译 |
|
英韩互译 |
|
英俄互译 |
|
英西互译 |
|
英法互译 |
|
英粤互译 |
|
its
文本翻译配置对象。如果不需要翻译功能,设为 null
即可。如果需要翻译功能,传入一个包含以下属性的对象:
JavaScript
let its = {
protocol: 'http', // 非必填,默认 https
url: 'localhost', // 必填,反向代理域名,代理为 https://itrans.xfyun.cn/v2/its
host: 'itrans.xfyun.cn', // 必填,固定值
path: '/v2/its', // 必填,固定值
port: 80, // 非必填,http 默认 80,https 默认 443
req: {
"business": {
"from": "cn", // 转写语种
"to": "en" // 翻译语种
}
}
}
callback
回调函数。该函数接收的对象包含 key
和 value
两个属性。
key 为 error:出现错误
对应的 value 示例如下:
JSON
{
// 错误码
"code":(int),
// 提示
"message":(string)
}
key 为 ist_result:语音转写结果
对应的 value 示例如下:
JSON
{
// 错误码,0标识成功。
"code":(int),
// 错误描述
"message":(string),
// 每次会话的唯一标识
"sid":(string),
// 识别数据
"data":{
// 识别结果是否结束标识:1:识别中;2:识别结束。
"status":(int),
// 识别结果
"result":{
// 返回结果的序号
"sn":(int),
// 是否是最后一片结果
"ls":(bool),
// 子句开始时刻,ms。
"bg":(long),
// 子句结束时刻,ms。
"ed":(long),
// 开启wpgs会有此字段,取值为 "apd"时表示该片结果是追加到前面的最终结果,取值为"rpl" 时表示替换前面的部分结果,替换范围为rg字段。
"pgs":(string),
// 替换范围,开启wpgs会有该字段。
"rg":(array),
// 是否子句结束
"sub_end":(bool),
// 词组
"ws":[
{
// 词相对子句开始时刻,10ms。
"bg":(long),
// 词多候选组
"cw":[
{
"rl":0,
// 分数
"sc":(double),
// 词
"w":(string),
// 词相对子句开始时刻,10ms。
"wb":(long),
"wc":0.00,
// 词相对子句结束时刻,10ms。
"we":(long),
// 词语的属性,其中n表示正常词、s表示顺滑、p表示标点、g表示分段。
"wp":(string)
}
]
},
...
]
}
},
// 业务上下文id,唯一标识一路完整会话(包括重连成功的请求)。
"context_id":(string)
}
key 为 its_result:文本翻译结果
对应的 value 示例如下:
JSON
{
// 错误码,0标识成功。
"code":(int),
// 错误描述
"message":(string),
// 每次会话的唯一标识
"sid":(string),
// 翻译数据
"data":{
// 结果
"result":{
// 源语种
"from":(string),
// 目标语种
"to":(string),
// 翻译结果
"trans_result":{
// 源文本
"src":(string),
// 目标文本
"dst":(string)
}
}
},
// 语音转写结果序号
"ist_sn":(int)
}
enable
TypeScript
enable(): void | Promise<void>;
开启插件。
该方法必须在 setOptions
之后调用。调用该方法后,如果 10s 内无音频输入,会自动停止识别。你可以重复调用该方法。
disable
TypeScript
disable(): void | Promise<void>;
关闭插件。
错误码
通用错误码
错误码 | 说明 | 处理方式 |
---|---|---|
-101 | 未知 | 分析日志 |
-102 | 翻译请求错误 | 分析 error 日志,并检查参数配置或网络 |
-103 | 翻译请求失败 | 依据 statusCode 分析,通常为跨域问题,请配置反向代理等解决跨域络 |
-104 | 语音识别失败 | 一般为网络连接问题,检查网络、本地时间、以及浏览器是否允许使用 WSS 协议 |
0 | 成功 | 无 |
语音识别错误码
错误码 | 说明 | 处理方式 |
---|---|---|
10043 | 音频解码失败 | 请检查所传的音频是否与 encoding 字段描述的编码格式对应 |
10139 | 参数错误 | 引擎编解码错误 |
10221 | 服务端没有可用连接 | 提交工单 |
10222 | 有服务端组件服务连接超时 | 提交工单 |
10223 | LB 找不到引擎节点 | 提交工单 |
10225 | 找不到 atmos | 提交工单 |
10317 | 版本非法 | 提交工单 |
11200 | 功能未授权或授权到期 | 提交工单申请权限 |
11201 | 日流控超限 | 额外需求请提交工单 |
11202 | 秒级流控超限 | 额外需求请提交工单 |
11203 | 并发流控超限 | 额外需求请提交工单 |
11204 | 组鉴权未通过,即组内所有功能均受限 | 如有需求请提交工单 |
10160 | 请求数据格式非法 | 检查请求数据是否是合法的 JSON |
10161 | Base64 解码失败 | 检查发送的数据是否使用 Base64 编码了 |
10163 | 参数校验失败 | 由客户端参数校验失败引起,客户端需要依据返回的 message 字段中的描述来更改请求参数 |
10200 | 读取数据超时 | 检查是否累计 10s 未发送数据并且未关闭连接 |
10114 | 会话时间超时 | 会话时间超过了 60000s,请控制会话时间,保持不超过 60000s |
10313 | appId 和 apiKey 不匹配或者没有传 appId | 检查请求参数 |
11503 | 服务内部响应数据错误 | 提交工单 |
11502 | 服务配置错误 | 提交工单 |
10118 | 服务端无法解析后端响应数据 | 提交工单 |
12000 | 用户发完数据没有收到结果 | - |
12001 | 用户没有正常发送完数据 | - |
99999 | 用户异常断开连接,或者会话超时断开连接 | - |
机器翻译错误码
错误码 | 说明 | 处理方式 |
---|---|---|
10324 | Sid 生成失败 | 联系技术人员 |
10106 | 非法的参数 | 检查参数是否正确上传 |
10107 | 非法参数值 | 检查参数值是否在取值范围内 |
10109 | 非法的 data | 检查发送的文本是否合法 |
10114 | 超时 | 检查网络是否通畅 |
11210 | appId 和 apiKey 不匹配 | 检查 appId 和 apiKey 是否匹配 |