小雅OS开放平台文档

小雅OS开放平台文档

  • 快速入门
  • 客户端接入
  • 服务端接入

方法列表

接口索引

函数签名简介
int xyos_init_sdk(const XYOSConfiguration *conf);XYOS LiteSDK 初始化
int xyos_register_xyos_platform(const char *credential);设备根据credential向XYOS平台进行注册并完成登录
void xyos_unregister_xyos_platform(void);将设备从XYOS平台注销,清空token,退出登录
int xyos_request_asr_nlu_by_file(const char *path, callback_type cb);根据语音文件,获取对应的asr和nlu结果
int xyos_request_asr_nlu_by_stream(const void *stream, long long size, callback_type cb);根据二进制语音流数据,获取对应的asr和nlu结果
int xyos_request_asr_nlu_by_segment(struct voice_options *vopt);分片上传二进制语音流数据,实时获取对应的asr和nlu结果
int xyos_request_tts_stream(const char *text, callback_type cb);根据文本字符串,获取对应的tts语音数据流
int xyos_register_rc_msg_handler(callback_type cb);注册反向控制器回调,该接口会在SDK中独立起一个线程,用来接收小雅OS云端push的消息
int xyos_perform_general_command(ge_command_type command_type, void* arg_in, callback_type cb);输入系统控制指令,执行系统控制
int xyos_get_location(double *latitute, double *longitude, MacAddressInfo localMacAddr, MacAddressInfo apMacAddr, MacAddressInfo arpMacList[], int ListSize);输入本地网卡信息 获取定位信息

关键结构

/**
 * 语音数据的格式类型
 */
typedef enum {
    PCM = 0,
    OPUS,
    WAV,
    AUDIO_TYPE_MAX
} audio_type_t;

/**
 * 用于存储获取的网卡信息数据结构体
 */
typedef struct _MacAddressInfo{
    char mMAC[32];
    char mSSID[128];
    char mSignal[12];
}MacAddressInfo;

/**
 * 基本的系统控制指令枚举类型
 */
typedef enum _ge_command_type{
    NEXT_COMMAND = 0,          // 系统控制[00] 下一首
    CHANGE_COMMAND,            // 系统控制[01] 换一首
    PREV_COMMAND,              // 系统控制[02] 上一首
    MUTE_COMMAND,              // 系统控制[03] 静音
    UNMUTE_COMMAND,            // 系统控制[04] 取消静音
    PAUSE_COMMAND,             // 系统控制[05] 暂停
    STOP_COMMAND,              // 系统控制[06] 停止
    QUIT_COMMAND,              // 系统控制[07] 退出
    CONFIRM_COMMAND,           // 系统控制[08] 确认
    CANCEL_COMAND,             // 系统控制[09] 取消
    POWEROFF_COMMAND,          // 系统控制[10] 关机
    UP_COMMAND,                // 系统控制[11] 调高音量
    DOWN_COMMAND,              // 系统控制[12] 调低音量
    MAX_COMMAND,               // 系统控制[13] 音量最大
    MIN_COMMAND,               // 系统控制[14] 音量最小
    SET_COMMAND,               // 系统控制[15] 设置音量
    ASKVOLUME_COMMAND,         // 系统控制[16] 查询音量
    OPEN_COMMAND,              // 系统控制[17] 蓝牙打开
    CLOSE_COMMAND,             // 系统控制[18] 蓝牙关闭
    SWITCH_COMMAND,            // 系统控制[19] 蓝牙切换
    GO_TO_SLEEP_COMAND,        // 系统控制[20] 我要睡觉
    LEAVE_OUT_COMMAND,         // 系统控制[21] 我要离开
    AUTO_NEXT_COMMAND,         // 系统控制[22] 自动下一首
    COMMAND_MAX,               // 23
} ge_command_type;      

/**
 *
 *SDK所需全局配置
 */
typedef struct {
    //客户信息
    char client_id[ID_LEN];//已废弃
    char client_secret[SECRET_LEN];//已废弃

    //设备信息
    char sn[ID_LEN];
    char xn[ID_LEN];
    int device_type;//默认2,表示音箱设备

    //产品信息
    char product_id[ID_LEN];
    char product_secret[SECRET_LEN];

    //平台信息
    char platform_id[ID_LEN];

    //地理位置
    double longitude;
    double latitude;

    //tts配置
    int person;
    int volume;
    int speed;
    int pit;
    int tts_pid;//7007

    //asr
    int asr_pid;//7005

    //固件版本号
    char rom_version[VERSION_LEN];

    //语音sdk版本号。若没有,跟rom_version保持一致
    char voice_sdk_version[VERSION_LEN];

    //语音流类型:
    audio_type_t audio_type;
} XYOSConfiguration;

/**
 *voice_options结构封装了分片上传语音数据流和获取对应asr/nlu结果的操作
 *
 *@loading:指向需要实时加载语音数据的函数,由应用程序自行实现(可将麦克风实时录入的声音传入buffer中)
 *@recving:用来接收云端实时语音识别的结果和最终NLU数据
 */
struct voice_options {
    int (*loading)(unsigned char *buffer);
    void (*recving)(unsigned char *msg, int len);
};

/**
 * 一种回调函数类型,SDK提供的接口中,大都会使用这种函数指针类型作为回调
 */
typedef void (*callback_type)(const char* msg, int msg_len);

接口详情


int xyos_init_sdk(const XYOSConfiguration *conf);

功能

完成xyos lite SDK 的初始化,调用程序负责填充conf各字段内容

参数
参数类型描述
confconst XYOSConfiguration *SDK全局配置
返回值

成功返回0,失败返回非0值


int xyos_register_xyos_platform(const char *credential);

功能

设备根据credential向XYOS平台进行注册,并完成登录。 设备登录时,XYOS用户中心会向设备厂商指定的地址(小雅OS开放平台-硬件开放平台-配置服务中的url)进行credential认证,完成登录操作。 如果SDK开启了feature.mk中的某些特性,会在登录成功后完成相关特性的初始化动作,如反向控制模块初始化等。

参数
参数类型描述
credentialconst char *从小雅OS开放平台获取到的信用证书
返回值

成功返回0,后台开启线程适时刷新token;失败返回非0值


void xyos_unregister_xyos_platform(void);

功能

将设备从XYOS平台注销,清空token,退出登录;完成其他内部资源的释放

参数
参数类型描述
无void不需要参数
返回值

无


int xyos_request_asr_nlu_by_file(const char *path, callback_type cb);
功能

根据语音文件,获取对应的asr和nlu结果

参数
参数类型描述
pathconst char *语音文件路径
longitudedouble*asr和nlu的结果会通过cb进行输出,参数msg为json格式的字符串,msg_len为有效字符串长度
返回值

请求成功返回0,否则返回非0值


int xyos_request_asr_nlu_by_stream(const void *stream, long long size, callback_type cb);

功能

根据二进制语音流数据,获取对应的asr和nlu结果

参数
参数类型描述
streamconst void *二进制语音流数据
sizelong long二进制语音流数据的长度
cbcallback_typeasr和nlu的结果会通过cb进行输出,参数msg为json格式的字符串,msg_len为有效字符串长度
返回值

请求成功返回0,否则返回非0值


int xyos_request_asr_nlu_by_segment(struct voice_options *vopt);

功能

分片上传二进制语音流数据,实时获取对应的asr和nlu结果。该接口成功调用后,sdk会起一个内部线程完成数据的传输,主线程直接返回,不阻塞。任何时候,可以调用该接口完成新一轮的数据传输,该接口会首先停止之前创建的线程。

参数
参数类型描述
voptstruct voice_options *包含两个函数指针,分别对应于loading语音数据和recving实时语音识别结果
返回值

成功返回0,失败返回非0值


int xyos_request_tts_stream(const char *text, callback_type cb);

功能

根据文本字符串,获取对应的tts语音数据流

参数
参数类型描述
textconst char *需要转成语音数据的文本内容,最长不要超过4096字节
cbcallback_typetts的结果会通过cb进行输出,参数msg为语音流数据,msg_len为语音流数据有效长度
返回值

请求成功返回0,否则返回非0值


int xyos_register_rc_msg_handler(callback_type cb);

功能

注册反向控制器回调,该接口会在SDK中独立起一个线程,用来接收小雅OS云端push的消息

  • 注意: 该接口通过CONFIG_REVERSE_CONTROL_SURPPORT开关进行控制,每个客户在拿到的SDK中,都会有SDK支持的特性文件demo/feature.mk。该接口描述了SDK支持哪些特性。如果用户需要SDK支持的特性,可在提供工具链时提出需求。
参数
参数类型描述
cbcallback_type接收到的push消息会通过cb->msg传递出来,cb->msg_len表示消息长度
返回值

成功返回0,否则返回非0值


int xyos_perform_general_command(ge_command_type command_type, void* arg_in, callback_type cb);

功能

输入系统控制指令,执行系统控制

参数
参数类型描述
typege_command_type系统指令枚举类型
arg_invoid*对应系统指令需要携带参数的情况
cbcallback_type接收到的push消息会通过cb->msg传递出来,cb->msg_len表示消息长度
返回值

请求成功返回0,否则返回非0值


int xyos_get_location(double *latitute, double *longitude, MacAddressInfo localMacAddr, MacAddressInfo apMacAddr, MacAddressInfo arpMacList[], int ListSize);

功能

输入系统控制指令,执行系统控制

参数
参数类型描述
latitutedouble *返回的定位信息 纬度
longitudedouble *返回的定位信息 经度
localMacAddrMacAddressInfo本地网卡信息结构体
apMacAddrMacAddressInfoap信息结构体
arpMacList[]MacAddressInfoarp信息结构体数组
ListSizeintarpMacList数组的长度
返回值

请求成功返回0,否则返回非0值

  • 接口索引
  • 关键结构
  • 接口详情
北京小雅星空科技有限公司 京ICP备19010603号