实时音视频 WebSocket 接入(新)

本接口服务采用 WebSocket 协议,对实时音频流进行识别,同步返回识别结果,达到“边说边出文字”的效果。

相关产品
实时音视频 产品页,含版本规格、价格与购买入口。

一、接口描述

注意:说明:

二、前提条件

需要准备两个凭证:SDKAppID 与 SecretKey。

参数 获取位置 说明
SDKAppID TRTC 控制台 > 应用管理 TRTC 应用 ID,v3 的唯一客户维度。
SecretKey TRTC 控制台 > 应用概览 > SDK 密钥 用于生成 UserSig,不会传输到网络。

三、接口要求

内容 说明
语言种类 支持中文普通话、中文方言、英语,以及日语、韩语、法语等其他语种。
支持行业 通用。
音频属性 采样率:16000Hz 或 8000Hz;采样精度:16bits;声道:单声道(mono)。
音频格式 1 pcm、4 speex、6 silk、8 mp3、10 opus(裸 Opus 帧流)、11 ogg(Ogg 封装,含 .opus/.ogg 文件)、12 wav、14 m4a、16 aac。说明:Opus 是编码格式,实际传输有两种封装,对应不同的 voice_format:10(裸 Opus 帧流):音频是连续的 Opus 帧序列,每帧前带2字节小端长度前缀。11(Ogg 封装):音频是 Ogg 容器文件,文件头前4字节为 OggS。常见的 .opus、.ogg 文件都属于此类(容器内部编码可为 Opus 或 Vorbis)。用现成音频文件推流时请选 11。判断方法:查看文件前4字节,是 OggS 就填 11。
请求协议 WSS 协议。
请求地址 wss://asr.cloud-rtc.com/asr/v3?voice_id=<voice_id>鉴权信息通过首帧消息的 auth 块传入,URL 上不携带鉴权参数。
响应格式 JSON。
数据发送 每 40ms 发送 40ms 时长(即 1:1 实时率)的数据包,对应 PCM 大小为:8k 采样率640字节,16k 采样率1280字节。单帧不超过256KB。建连后需在3秒内发送首帧;音频数据包之间发送间隔超过15秒,后台将返回错误并主动断开连接。
并发限制 默认单账号(SDKAppID)限制并发数为100路。

注意:说明:

注意:如你有更多并发需求,请 联系我们。

四、业务流程图

对应的 SDK 行为:Start() 完成 ①②(同步等待 ack,鉴权或参数错误立即返回 error);Write() 对应 ③ 上行;下行经 listener 回调 OnSentenceBegin / OnRecognitionResultChange / OnSentenceEnd / OnRecognitionComplete;Stop() 发送 end 并等待 final:1。

五、接口调用流程

接口调用流程分为三个阶段:建立连接、鉴权、识别。鉴权与识别阶段后台均返回 text message,内容为 JSON 序列化字符串,以下是公共字段格式说明:

字段名 类型 描述
code Integer 状态码,0 代表正常,非 0 值表示发生错误。
message String 错误说明。
voice_id String 音频流全局唯一标识,一个 WebSocket 连接对应一个,用户自己生成(推荐使用 UUID),最长128位。
message_id String 本 message 唯一 ID。
result Result 最新语音识别结果,结构见 识别结果。
final Integer 该字段返回1时表示音频流全部识别结束。

六、建连阶段

客户端发起 WebSocket 连接请求,请求 URL 格式为:wss://asr.cloud-rtc.com/asr/v3?voice_id=<voice_id>。

URL 上只携带 voice_id,不携带任何鉴权参数。voice_id 同时出现在 URL ?voice_id= 与首帧 params.voice_id 中,两者需一致,或在 params 中省略。SDK 默认生成 uuid,可通过 SetVoiceID 指定。

七、鉴权阶段

连接建立后,客户端需在 3秒内 发送首帧 text message,内容为 JSON,同时完成鉴权与参数下发:

{ "type": "start", "auth": {"sdkappid": "1400000001", "usersig": "eJw…"}, "params": {"engine_model_type": "bigmodel", "language": "zh", "voice_format": 1, "needvad": 1}}

type 固定为 start。首帧 JSON 非法或 type 非 start 时,服务端返回 4010;超过3秒未发送首帧,返回 4008。

鉴权通过后服务端返回 code 值为0的确认消息表示鉴权成功:

{"code": 0, "message": "success", "voice_id": "faab2b17-ba43-4ea4-be58-a03180ba26dd"}

鉴权或参数校验失败时,服务端返回 code 为非0值的错误帧(如 4002 鉴权失败、4001 参数不合法),随后正常关闭连接。

SDK 的 Start() 会同步等待该 ack,鉴权与参数错误直接从 Start() 返回。

八、auth 字段说明

一条 WebSocket 连接即一条流,voice_id 既是流身份、也是签名 identifier,因此 auth 块中不再重复携带。

字段 类型 必填 说明
sdkappid String 是 TRTC 应用 ID,取自 credential,SDK 自动填写。
usersig String 是 TRTC 签名,identifier = 当前 voice_id,SDK 按该值签发。计算方式请参见 用户鉴权。

注意:说明:

注意:在线协议没有 request_id。request_id 是离线接口 “一次请求 = 一个事务” 的概念,流式协议里不存在。

九、签名规则

1. 未调用 credential.SetUserSig() 时,SDK 使用 SDKAppID + SecretKey 本地生成签名,有效期 86400 秒,且每条连接都重新生成,长跑服务无需自行管理过期。

2. 调用 credential.SetUserSig(sig) 传入固定签名后,SDK 不再生成也不再刷新。服务端使用当前 identifier(在线为 voice_id)验签,因此签名必须用同一个 identifier 签发。固定签名场景(如浏览器端由业务后端下发签名)需自行处理过期与 identifier 对齐。

3. 签名与站点绑定。SetSite(common.SiteIntl) 决定 host 与验签集群,国际站凭证不可用于国内站,反之亦然。

4. SecretKey 不会传输到网络,签名只用于服务端验签。

十、params 参数说明

参数名 必填 类型 描述
voice_id 否 String 音频流全局唯一标识,一个 WebSocket 连接对应一个,用户自己生成(推荐使用 UUID),最长 128 位。需与 URL 参数一致,或省略。
engine_model_type 是 String 语音识别 2.0(推荐)bigmodel:大模型引擎,支持实时说话人分离。语音识别 1.0基础版引擎:8k_zh。标准版引擎:可配置 8k_zh_large、16k_zh_large 或 16k_zh_en。高级版引擎:小语种 ASR 引擎,传参是“16k_具体语种 code”,例如 16k_vi(越南语)。
language 否 String 语音识别 2.0(推荐)bigmodel 支持 zh(中文普通话、中文方言和中英混)、en(英语)、yue(粤语)和小语种。中文方言:安徽、东北、福建、甘肃、贵州、河北、河南、湖北、湖南、江西、宁夏、山东、陕西、山西、四川、天津、云南、浙江、粤语(香港口音)、粤语(广东口音)、吴语、闽南语。小语种:ar(阿拉伯语)、de(德语)、fr(法语)、es(西班牙语)、pt(葡萄牙语)、id(印尼语)、it(意大利语)、ko(韩语)、ru(俄语)、th(泰语)、vi(越南语)、ja(日语)、tr(土耳其语)、hi(印地语)、ms(马来语)、nl(荷兰语)、sv(瑞典语)、da(丹麦语)、fi(芬兰语)、pl(波兰语)、cs(捷克语)、fa(波斯语)、el(希腊语)、ro(罗马尼亚语)、hu(匈牙利语)、mk(马其顿语)。语音识别 1.0基础版:8k_zh 支持中文普通话和中文方言。标准版:8k_zh_large、16k_zh_large 支持中文普通话和中文方言;16k_zh_en 支持中文普通话、中文方言、英语和中英混。高级版:vi(越南语)、ja(日语)、ko(韩语)、id(印度尼西亚语)、th(泰语)、pt(葡萄牙语)、tr(土耳其语)、ar(阿拉伯语)、es(西班牙语)、hi(印地语)、fr(法语)、ms(马来语)、fil(菲律宾语)、de(德语)、it(意大利语)、ru(俄语)、sv(瑞典语)、da(丹麦语)、no(挪威语)。如果你有更多语言需求,请 联系我们 评估。说明:当 engine_model_type 配置为 bigmodel,不填写 language 字段时,模型会自动识别语种;使用 SDK 时建议显式指定。
voice_format 否 Integer 语音编码方式,默认 1。取值:1 pcm、4 speex、6 silk、8 mp3、10 opus(裸 Opus 帧流)、11 ogg(Ogg 封装,含 .opus/.ogg 文件)、12 wav、14 m4a、16 aac。说明:Opus 是编码格式,实际传输有两种封装,对应不同取值。10 裸 Opus 帧流——音频是连续的 Opus 帧序列,每帧前带2字节小端长度前缀;11 Ogg 封装——音频是 Ogg 容器文件,文件头前4字节为 OggS,常见的 .opus、.ogg 文件都属于此类(容器内部编码可为 Opus 或 Vorbis),用现成音频文件推流时请选 11。判断方法:查看文件前4字节,是 OggS 就填 11。实时推流场景建议使用 pcm(16kHz、16bit、单声道)。
input_sample_rate 否 Integer 支持 PCM 格式的 8k 音频在与引擎采样率不匹配的情况下升采样到 16k 后识别,能有效提升识别准确率。仅支持:8000。注意:此参数仅适用于 PCM 格式音频,不传入值将维持默认状态,即默认调用的引擎采样率等于 PCM 音频采样率。
needvad 否 Integer 0 关闭 vad。1 开启 vad。不传时由引擎决定(Go SDK 默认下发 1)。为保证识别效果,如果语音分片长度超过 60 秒,会强制在 60s 断一次,建议音频超过 60s 时开启 vad(人声检测切分功能),提升切分效果。
vad_silence_time 否 Integer 语音断句检测阈值,静音时长超过该阈值会被认为断句(多用在智能客服场景,需配合 needvad=1 使用),取值范围 240-2000(默认 800),单位 ms。此参数建议不要随意调整,可能会影响识别效果。
vad_level 否 Integer VAD 场景档:0 高召回。1 远场过滤。默认 1。设置 noise_threshold 后覆盖本档位。
noise_threshold 否 Float 噪音参数阈值,取值范围 [0.0, 4.0]。对于一些音频片段,取值越大,判定为噪音情况越大;取值越小,判定为人声情况越大。不传时走服务端缺省。
speaker_diarization 否 Integer 实时说话人分离配置项:0 不开启说话人分离。1 开启说话人分离(匿名聚类)。3 开启说话人分离基础上增加角色认证,需配合 voiceprint_ids 或 speaker_roles 参数使用。默认值:0。注意:取 1 或 3 时,服务端会强制开启 VAD 并调整 word_info。
enable_speaker_context 否 Integer 说话人分离断点续传:0 关;1 同步返回恢复状态;2 首响应立即返回(只给 id);需配合 speaker_diarization=1/3。
voiceprint_ids 否 String Array 实时说话人声纹匹配 ID 配置项。该参数值通过声纹注册接口注册获取,参数为数组,最大可支持 32 个声纹。仅 speaker_diarization=3 时生效。示例:["550e8400-e29b-41d4-a716-446655440000","550e8400-e29b-41d4-a716-446655440002"]。
speaker_roles 否 Object Array 临时声纹,仅在本次识别中生效,仅 speaker_diarization=3 时生效。格式 [{"audio_url":"…","role_name":"…"}]。命中后 role_name 会回显到识别结果的 speaker_name。
max_speak_time 否 Integer 强制断句功能,取值范围 5000-90000(单位:毫秒),默认值 60000。在连续说话不间断情况下,该参数将实现强制断句(此时结果变成稳态,slice_type=2)。例如游戏解说场景,解说员持续不间断解说、无法断句的情况下,将此参数设置为 10000,则将在每10秒收到 slice_type=2 的回调。
filter_dirty 否 Integer 是否过滤脏词(目前支持中文普通话引擎)。默认为 0。0 不过滤脏词。1 过滤脏词。2 将脏词替换为 *。
filter_modal 否 Integer 是否过滤语气词(目前支持中文普通话引擎)。默认为 0。0 不过滤语气词。1 部分过滤。2 严格过滤。
filter_punc 否 Integer 是否过滤句末的句号(目前支持中文普通话引擎)。默认为 0。0 不过滤句末的句号。1 过滤句末的句号。
filter_empty_result 否 Integer 空结果是否下发:0 下发。1 不下发。默认 1。
convert_num_mode 否 Integer 是否进行阿拉伯数字智能转换(目前支持中文普通话引擎):0 不转换,直接输出中文数字。1 根据场景智能转换为阿拉伯数字。3 数学模式。默认值为 1。
word_info 否 Integer 是否显示词级别时间戳:0 不显示。1 显示,不包含标点时间戳。2 显示,包含标点时间戳;100 字幕模式。默认 0。
word_with_space 否 Integer 英文单词间是否输出空格。默认 0。
hotword_id 否 String 热词表 ID,SDKAppID 维度。需先在控制台创建热词表。
hotword_list 否 String 临时热词表:该参数用于提升识别准确率。单个热词限制:“热词|权重”,单个热词不超过30个字符(最多10个汉字),权重 [1-11] 或者100,例如 “腾讯云|5” 或 “ASR|11”;临时热词表限制:多个热词用英文逗号分割,最多支持128个热词,例如 “腾讯云|10,语音识别|5,ASR|11”。注意:热词权重设置为11时,当前热词将升级为超级热词,建议仅将重要且必须生效的热词设置到11,设置过多权重为11的热词将影响整体字准率。热词权重设置为100时,当前热词开启热词增强同音替换功能。举例:热词配置“公式|100”时,当遇到发音为(gongshi) 的词汇,模型会倾向于识别为“公式”而不是“公示”或其他同音词。建议根据业务实际情况开启该功能,仅将重要热词设置到100,设置过多权重为100的热词将影响整体字准率。热词不能包含空格。

十二、上传数据

鉴权成功后,客户端持续上传 binary message 到后台,内容为音频流二进制数据。每 40ms 发送 40ms 时长(即 1:1 实时率)的数据包,对应 PCM 大小为:8k 采样率640字节,16k 采样率1280字节。单帧不超过256KB。音频数据包之间发送间隔超过15秒,后台将返回 4008 并主动断开连接。

音频流上传完成之后,客户端需发送以下内容的 text message,通知后台结束识别。

{"type": "end"}

十三、接收消息

客户端上传数据的过程中,需要同步接收后台返回的实时识别结果,结果示例:

{ "code": 0, "message": "success", "voice_id": "23c33398-4da0-4ba7-b0ec-7565b325301d", "message_id": "756d2992-5a23-488a-b391-9c9c0c36bedf", "result": { "slice_type": 0, "index": 0, "start_time": 0, "end_time": 6000, "voice_text_str": "欢迎来到 ASR。", "language": "zh", "word_size": 0, "word_list": [] }}

后台识别完所有上传的语音数据之后,最终返回 final 值为 1 的消息并断开连接。

{ "code": 0, "message": "success", "voice_id": "faab2b17-ba43-4ea4-be58-a03180ba26dd", "message_id": "8d9e6337-2c8a-49e2-aee9-9179d71ab7a8", "final": 1}

识别过程中如果出现错误,后台返回 code 为非 0 值的消息并断开连接。

{ "code": 4008, "message": "后台识别服务器音频分片等待超时", "voice_id": "faab2b17-ba43-4ea4-be58-a03180ba26dd", "message_id": "8d9e6337-2c8a-49e2-aee9-9179d71ab7a8"}

十四、识别结果

字段名 类型 描述
slice_type Integer 识别结果类型:0 一段话开始识别。1 一段话识别中,voice_text_str 为非稳态结果(该段识别结果可能变化)。2 一段话识别结束,voice_text_str 为稳态结果(该段识别结果不再变化)。根据发送的音频情况,识别过程中可能返回的 slice_type 序列有:0-1-2(一段话开始识别、识别中可能有多次 1 返回、识别结束)。0-2。或直接返回 2(一段话完整的识别结果)。
index Integer 当前一段话结果在整个音频流中的序号,从0开始逐句递增。
start_time Integer 当前一段话结果在整个音频流中的起始时间。
end_time Integer 当前一段话结果在整个音频流中的结束时间。
voice_text_str String 当前一段话文本结果,编码为 UTF8。
language String 当前一段话识别的语种类型,例如 zh。
word_size Integer 当前一段话的词结果个数(word_list 数组的长度与 word_size 的值相等)。
word_list Word Array 当前一段话的词列表,结构见下。需 word_info != 0。
speaker_segments SpeakerSegment Array 当开启实时说话人分离时会有该结果返回,表示当前句子的说话人片段结果。
finish_silence_ms Integer 触发断句的尾部静音时长(ms)。
last_token_runtime_ms Integer 末字服务端解码耗时(ms)。

十五、Word 结构体

字段名 类型 描述
word String 该词的内容。
start_time Integer 该词在整个音频流中的起始时间。
end_time Integer 该词在整个音频流中的结束时间。
stable_flag Integer 该词的稳态结果:0 表示该词在后续识别中可能发生变化。1 表示该词在后续识别过程中不会变化。
speaker_id Integer 当开启实时说话人分离时会有该内容。-1 未知说话人。>0 说话人 ID。
speaker_name String 已注册声纹说话人标识。

十六、说话人分离

开启 speaker_diarization 后,说话人分离的标识结果通过两个入口返回:

·result.speaker_segments[](推荐入口):一个 result 可能包含多个说话人,句子级归属天然有歧义,因此协议按说话人切段返回。len(speaker_segments) == 1 即为单说话人句。

·result.word_list[].speaker_id:字级归属,需同时设置 word_info != 0。

speaker_id 语义:会话内有效,从 1 开始编号,-1 表示未知说话人,0 为保留值。

十七、speaker_segments 字段

字段 类型 说明
speaker_id Integer 说话人 ID。-1 未知说话人。>0 说话人 ID。
speaker_name String 已注册声纹说话人标识。仅 speaker_diarization=3 且命中注册声纹时返回,等于请求侧的 role_name。
start_time Integer 片段开始时间(ms)。
end_time Integer 片段结束时间(ms)。
text String 该分段文本。
word_start Integer 对应 word_list 的开始位置下标(闭区间)。word_info=0 时不返回。
word_end Integer 对应 word_list 的结束位置下标(闭区间),即 word_list[word_start:word_end+1]。word_info=0 时不返回。
stable_flag Integer 是否稳态结果:1 稳定。0 非稳定。

十八、VAD 调优

方法 取值 说明
SetVadLevel(level) 0 / 1 0 高召回。1 远场过滤(服务端默认)。
SetNoiseThreshold(v) 0.0 – 4.0 噪声抑制微调,值越大抑制越强、召回越低。设置后覆盖 vad_level 档位。
SetVadSilenceTime(ms) 240 – 2000 静音断句阈值。

两者都是三态语义:只有显式调用 setter 才会下发,因此显式传 0 与「不配置」可以区分(服务端 vad_level 默认为 1)。取值超出范围会在 Start() 阶段本地报错,不会浪费一次连接。

20、安装

go get github.com/Tencent-RTC/trtc-asr-sdk-go@latest

要求 Go 1.21 及以上。

21、SDK

·Tencent-RTC SDK for Go:Github

·Tencent-RTC SDK for Python:Github

·Tencent-RTC SDK for nodejs:Github

·Tencent-RTC SDK for Java:Github

·Tencent-RTC SDK for Rust:Github

·Tencent-RTC SDK for cpp:Github

22、SDK 调用示例

单击查看 Golang 示例。

23、初始化凭证

import ( v3 "github.com/Tencent-RTC/trtc-asr-sdk-go/asr/v3"`// "github.com/Tencent-RTC/trtc-asr-sdk-go/common"`)// 第一个参数是 SDKAppID(如 1400xxxxxx);v3 不需要腾讯云 AppID。credential := v3.NewCredential(sdkAppID, "your-sdk-secret-key")// credential.SetSite(common.SiteIntl) // 国际站;不调用则走国内站

24、发起实时识别

type MyListener struct{ v3.UnimplementedSpeechRecognitionListener }func (l *MyListener) OnSentenceEnd(resp *v3.SpeechRecognitionResponse) { log.Printf("Sentence end: %s", resp.Result.VoiceTextStr)}func (l *MyListener) OnFail(resp *v3.SpeechRecognitionResponse, err error) { log.Printf("Failed: %v", err) // err 为 *common.ASRError,Code 即服务端错误码}recognizer := v3.NewSpeechRecognizer(credential, "bigmodel", &MyListener{})recognizer.SetLanguage("zh") // bigmodel 建议显式指定语种if err := recognizer.Start(); err != nil { log.Fatal(err) // 鉴权失败/参数非法在这里同步返回}// recognizer.Write(pcmChunk) … 循环发送音频recognizer.Stop() // 发送 {"type":"end"} 并等待 final

25、开启说话人分离

recognizer := v3.NewSpeechRecognizer(credential, "bigmodel", &MyListener{})recognizer.SetLanguage("zh")recognizer.SetWordInfo(1) // 需要字级说话人时开启recognizer.SetSpeakerDiarization(v3.SpeakerDiarizationCluster) // 1:匿名聚类// 声纹角色认证(返回角色名):// recognizer.SetSpeakerDiarization(v3.SpeakerDiarizationVoiceprint) // 3// recognizer.SetSpeakerRoles([]v3.SpeakerRole{// {RoleName: "teacher", AudioURL: "https://example.com/teacher.wav"},// })// recognizer.SetVoiceprintIDs([]string{"vp-1"}) // 已注册声纹// 回调中读取分段结果:func (l *MyListener) OnSentenceEnd(resp *v3.SpeechRecognitionResponse) { for _, seg := range resp.Result.SpeakerSegments { name := seg.SpeakerName // speaker_diarization=3 才有 if name == "" { name = fmt.Sprintf("spk%d", seg.SpeakerID) } log.Printf("[%s] %s", name, seg.Text) }}

26、运行示例

# 获取示例代码(examples 目录在 SDK 仓库中)git clone https://github.com/Tencent-RTC/trtc-asr-sdk-go.gitcd trtc-asr-sdk-gocd examples/v3_realtime_asrgo run main.go -e bigmodel -f ../test.pcm# 说话人分离(匿名聚类 + 字级说话人)go run main.go -e bigmodel -f ../test.pcm -diarization 1 -word-info 1# 说话人分离(声纹角色认证,返回角色名)go run main.go -e bigmodel -f ../test.pcm -diarization 3 \\ -roles "teacher=https://example.com/teacher.wav,student=https://example.com/student.wav"# 查看所有选项go run main.go -h

27、配置项

方法 说明 默认值
SetVoiceFormat(f) 音频格式。 1(PCM)
SetNeedVad(v) 是否开启 VAD(显式 0 会真正下发关闭)。 1(开启)
SetConvertNumMode(m) 数字转换:0 不转 / 1 智能 / 3 数学(显式 0 生效)。 1(智能)
SetHotwordID(id) 热词表 ID(SDKAppID 维度)。 –
SetHotwordList(list) 临时热词列表 词|权重,…。 –
SetFilterDirty(m) 脏词过滤。 0(关闭)
SetFilterModal(m) 语气词过滤。 0(关闭)
SetFilterPunc(m) 句号过滤。 0(关闭)
SetFilterEmptyResult(m) 空结果是否回调。 1(不回调)
SetWordInfo(m) 词级/字级时间:0 关 / 1 开 / 2 含标点 / 100 字幕。 0(关闭)
SetWordWithSpace(m) 英文单词间空格输出。 0(关闭)
SetVadSilenceTime(ms) VAD 静音阈值(240-2000)。 800ms
SetVadLevel(level) VAD 场景档:0 高召回 / 1 远场过滤。 1
SetNoiseThreshold(v) VAD 噪声微调(0.0-4.0),覆盖场景档。 未设置
SetMaxSpeakTime(ms) 强制断句时间(5000-90000)。 60000ms
SetInputSampleRate(r) 输入 PCM 采样率,仅8000。 –
SetSpeakerDiarization(m) 说话人分离:0 关 / 1 聚类 / 3 声纹角色。 0(关闭)
SetSpeakerRoles(roles) 临时声纹角色(仅模式 3,{RoleName, AudioURL})。 –
SetVoiceprintIDs(ids) 已注册声纹 ID(仅模式 3)。 –
SetLanguage(lang) 指定识别语言。 自动检测
SetVoiceID(id) 自定义 voice_id(UserSig 自动绑定该值)。 自动 UUID

28、错误码

数值 说明
4000 音频数据发送过多。注意:实时识别的效果是“边说边出文字”,1秒内发送的音频数据总时长应为1秒。
4001 参数不合法,具体详情参考 message。
4002 鉴权失败。请检查 sdkappid、usersig 是否已通过首帧消息的 auth 块正确传入,以及签名的 identifier 是否等于当前 voice_id、签名是否有效未过期。
4003 AppID 服务未开通,请在控制台开通服务。
4004 资源包耗尽,请开通后付费或者购买资源包。
4005 账户欠费停止服务,请及时充值。
4006 账号当前调用并发超限。
4007 音频解码失败,请检查上传音频数据格式与调用参数一致。
4008 超时。建连后3秒未发送首帧,或识别过程中15秒未发送音频数据。
4009 客户端连接断开。
4010 客户端上传未知文本消息。首帧 JSON 非法,或 type 非 start。
5000 因机器负载过高、网络抖动等导致失败,请重新发起新识别。注意:该问题通常为偶发,少量出现可忽略,发起新识别即可。
5001 同 5000。
5002 同 5000。

SDK 本地错误码:SDK 返回的 error 为 *common.ASRError,其 Code 即服务端错误码。SDK 本地错误使用 10xx 区间,如 1001 本地参数错误、1002 连接失败。

赞 (0)
上一篇 4天前
下一篇 4天前