# 语音请求

# 功能说明

语音请求接口接收用户上传的流式语音包,转换为文本后进行自然语言分析,最后检索资源,返回结果

# 请求uri

/xwopenapi/speech

# 请求类型

websocket

# 请求参数

接口请求内容需要按照公共参数中的websocket请求格式传入,其中content字段为以下结构json序列化base64编码结果:

字段名 类型 必填 描述
speech.voice_seq int 同一个语音流中请求包的自增序号,从0开始;对于speex等类型的压缩语音,是指压缩前原始语音的偏移;例如:0,3200,6400,9600....
speech.is_voice_end bool 标记是否是尾包;true-是,false-不是,默认false
speech.voice_len int 该语音请求中语音数据的长度;对于speex等类型的压缩语音,是指压缩前原始语音的长度;需要跟解压后语音的长度一致;
speech.samples_per_sec int 采样率,8000或16000
speech.bits_per_sample int 采样点类型,固定为16
speech.voice_file_type int 语音文件类型;1:raw 2:wav
speech.voice_encode_type int 语音编码类型;1:pcm 2:adpcm 3:feature 4:speex 5:amr 6:silk
speech.voice_data string 音频流数据base64编码后字符串
speech_config.head_silence_thres uint32 No 默认为5000,即5s长度语音vad 语音前部静音阈值,超过该阈值返回错误,等待用户多久说话的意思,一直不说话认为流程结束
speech_config.tail_silence_thres uint32 No 默认为500,即500ms vad尾部静音语音尾部静音阈值,停顿多久认为用户说话结束的意思
speech_config.local_vad bool No 是否启用云端vad检测 默认0 0-本地vad,1-云端vad
speech_config.awake_cloud bool Yes 是否采用云端唤醒
speech_config.profile_type int Yes 近场还是远场 0-远场,1-近场 默认远场
speech_config.wakeup_mode int Yes 唤醒模式,0-本地唤醒,1-云端唤醒,2-本地带唤醒词,3-不需要唤醒
speech_config.awake_words string No 唤醒词

注意:

  • 同一个语音请求的不同语音片段的公共参数中的http.header.RequestID需保持一致

# 请求示例

{
  "speech_config": {}, // XWSpeechReqProcessConfig Json 对象
  "speech": {}         // XWSpeechReqSpeechInfo Json 对象
}

# silk压缩

我们的silk是silk v3,提供安卓的aar库和demo。

aar下载地址:https://xiaoweidevice-75050.gzc.vod.tencent-cloud.com/doc/xwsilksdk.aar

# 返回结果

# ASR识别结果

在发送语音请求过程中,服务端会使用1001002命令字推送ASR识别结果,接口返回参数遵循公共参数中的websocket响应格式,接口返回的content.response内容为以下格式:

字段名 类型 描述
session_ctrl.seq int 当前语音序列
orig_question_text string ASR识别结果
is_voice_start bool 当前session_ctrl.seq为语音开始标记
is_voice_end bool 当前session_ctrl.seq为语音结束标记,客户端收到此标记应终止此次收音

# 技能执行结果

接口返回参数遵循公共参数中的websocket响应格式 接口返回的content.response内容遵循资源格式约束

# Demo

demo下载地址: https://xiaoweidevice-75050.gzc.vod.tencent-cloud.com/doc/xwopendemo.zip