rokid-openvoice-websocket

开放平台接口定义文档(websocket版)

文档版本:V0.2

Rokid openvoice开放服务(websocket版)包含以下三部分功能,

  • 设备认证
  • 自然语言合成(TTS)
  • 完整语音交互(SPCH)

文档简介

此文档用于定义开放平台上云端应用接口开发协议,协议遵循 websocket 协议。

Speech 接口

服务器地址

wss://apigwws.open.rokid.com/api

protobuf 定义

详见protobuf

AuthRequest

参数 类型 描述 默认值
key string 开放接口Key,在管理平台获取 无,必填
device_type_id string 设备类型ID 无,必填
device_id string 设备ID 无,必填
service string asr,tts,speech 无,必填
version string 接口版本号 无,必填
timestamp string unix时间戳 无,必填
sign string 由以上几项+secret按约定的加密方式生成 无,必填

sign的生成加密方式:

key={key}&device_type_id={device_type_id}&device_id={device_id}&service={service}&version={version}&time={timestamp}&secret={secret}

的utf8字符串的md5值

其中{xxx}由xxx的值替代

key及secret由开发方通过管理平台获取,并保管。

此处version可有1.0或2.0,分别对应protobuf中v1或v2目录。

AuthResponse

请求响应

参数 类型 描述
result int32 认证结果(成功:0, 失败:-1)

TtsRequest

PCM格式为 RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 24000 Hz语音。 注意,这里的PCM与Asr的PCM格式不一致,因此不能将tts的输出直接作为asr的输入。 可以使用 sox -t s16 -c 1 -r 24000 xxx.pcm xxx.wav 将pcm转成wav。

或者

请求时将 sample_rate 设置为16000,则返回16k的语音数据,可以直接作为asr的输入。

参数 类型 描述 默认值
id int32 唯一标识,用于跟踪一个完整的请求,处理及响应事件。 0
text string 需要转换的text文本
declaimer string 发音者,如"zh","zhangsan","rose" "zh"
codec     string 语音流的编码,目前支持PCM,OPU,OPU2。  
sample_rate     uint32 语音流的比特率,目前支持24000,16000。   24000

TtsResponse

请求响应

参数 类型 描述
id int32 唯一标识,用于跟踪一个完整的请求,处理及响应事件。
result SpeechErrorCode 错误信息
text string voice语音中包含的文字
voice bytes 合成的voice语音
finish bool 语音是否结束

SpeechRequest

PCM格式为 RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 16000 Hz语音。 注意,这里的PCM与Tts的PCM格式不一致,因此不能将tts的输出直接作为asr的输入。 可以使用 sox -t s16 -c 1 -r 16000 xxx.pcm xxx.wav 将pcm转成wav。

参数 类型 描述 默认值
id int32 唯一标识,用于跟踪一个完整的请求,处理及响应事件。 0
type   ReqType START/VOICE/END 或 TEXT 无  
voice bytes 需要识别的voice语音流
asr   bytes     需要理解的asr文本       无  
options   SpeechOptions     辅助理解的选项       无  
lang string 语音流的语言,目前支持zh-CN,en-US。 zh-CN
codec string 语音流的编码,目前支持PCM,OPU,OPU2。 PCM
vad_mode   VadMode LOCAL/CLOUD 无 
vend_timeout   uint32 如果vad_mode为CLOUD时,指定vad时间,单位ms  无  
no_nlp   bool 是否需要nlp false  
no_intermediate_asr   bool 是否需要asr的实时识别结果  false  
stack string 设备当前的应用栈信息,"appid1:appid2"按照应用被调用的早晚逆序排列。           空    
voice_trigger string 激活词,即用于唤醒设备的名字,如"若琪"。
voice_power   float 语音流的音强 如有进行多设备间的仲裁  
trigger_start   float 语音流的激活词的开始位置。 无  
trigger_length   float 语音流的激活词的长度。 无  
skill_options string 设备上的状态信息,为json结构,此结构会传给相应的skill的cloud app中。         空    
voice_extra string 设备上的语言的额外信息,为json结构,此结构会传给asr中。         空    
vad_begin uint32 asr会将语音从 vad_begin ms开始识别,之前的数据丢弃。         0    

SpeechResponse

参数 类型 描述
id int32 唯一标识,用于跟踪一个完整的请求,处理及响应事件。
result SpeechErrorCode 错误信息
type RespType 结果类型INTERMEDIATE/ASR_FINISH/FINISH
asr string asr实时识别的结果
nlp string nlp识别的结果
action string cloud app处理的结果
extra string 目前有:{"activation": "fake(误激活)

action:json字符串,结构详见 action定义