224 lines
7.7 KiB
C
224 lines
7.7 KiB
C
#ifndef _TURING_H_
|
||
#define _TURING_H_
|
||
|
||
|
||
#include "sock_api/sock_api.h"
|
||
#include "json_c/json_tokener.h"
|
||
|
||
// #define TURING_MEMORY_DEBUG
|
||
|
||
#define TURING_DEBUG
|
||
#ifdef TURING_DEBUG
|
||
|
||
#define TR_DEBUG_E(...) printf("[ERROR] in func:%s line:%d ", __func__, __LINE__), \
|
||
printf(__VA_ARGS__), \
|
||
printf("\r\n");
|
||
|
||
#define TR_DEBUG_I(...) printf(__VA_ARGS__)
|
||
|
||
#else
|
||
|
||
#define TR_DEBUG_E(...)
|
||
#define TR_DEBUG_I(...)
|
||
|
||
#endif
|
||
|
||
#define TURING_ENC_USE_OPUS 1
|
||
|
||
typedef enum {
|
||
ASR_PCM_16K_16BIT,
|
||
ASR_PCM_8K_16BIT,
|
||
ASR_AMR_8K_16BIT,
|
||
ASR_AMR_16K_16BIT,
|
||
ASR_OPUS,
|
||
ASR_SPEEX,
|
||
} ASR_TYPE;
|
||
|
||
typedef enum {
|
||
TTS_PCM_8K_16BIT,
|
||
TTS_MP3_64,
|
||
TTS_MP3_24,
|
||
TTS_MP3_16,
|
||
TTS_AMR_NB,
|
||
} TTS_TYPE;
|
||
|
||
typedef enum {
|
||
NOT_OUTPUT_TXT, //不输出文本(默认)
|
||
OUTPUT_ASR_TXT, //输出asr文本信息
|
||
OUTPUT_TTS_TXT, //输出tts文本信息
|
||
OUTPUT_ARS_TTS_TXT, //输出asr&tts文本信息
|
||
} OUT_TXT;
|
||
|
||
typedef enum {
|
||
NOT_STREAM_IDENTIFY, //非流式识别(默认)
|
||
STREAM_IDENTIFY, //流式识别
|
||
} STREAM_CTL;
|
||
|
||
typedef enum {
|
||
NORMAL_ENCODE, //通用编码
|
||
CUSTORM_ENCODE, //自定义编码
|
||
} ENCODE_MODE;
|
||
|
||
typedef enum {
|
||
SMARTCHAT, //智能聊天
|
||
ACTIVE_INTERACTION, //主动交互
|
||
MARKED_WORDS, //提示语
|
||
ORAL_EVALUATION, //口语评测
|
||
PICTURE_RECOG, //绘本识别
|
||
INPUT_TEXT, //文本输入
|
||
} MUTUAL_TYPE;
|
||
|
||
typedef enum {
|
||
PLAY_NEXT,
|
||
PLAY_PREV,
|
||
CONNECT_SUCC,
|
||
} CMD_DODE;
|
||
|
||
enum TURING_SDK_EVENT {
|
||
TURING_SPEAK_END = 0x01,
|
||
TURING_MEDIA_END = 0x02,
|
||
TURING_PLAY_PAUSE = 0x03,
|
||
TURING_PREVIOUS_SONG = 0x04,
|
||
TURING_NEXT_SONG = 0x05,
|
||
TURING_VOLUME_CHANGE = 0X06,
|
||
TURING_VOLUME_INCR = 0x07,
|
||
TURING_VOLUME_DECR = 0x08,
|
||
TURING_VOLUME_MUTE = 0x09,
|
||
TURING_RECORD_START = 0x0a,
|
||
TURING_RECORD_SEND = 0x0b,
|
||
TURING_RECORD_STOP = 0x0c,
|
||
TURING_VOICE_MODE = 0x0d,
|
||
TURING_MEDIA_STOP = 0x0e,
|
||
TURING_BIND_DEVICE = 0x0f,
|
||
TURING_RECORD_ERR = 0x10,
|
||
TURING_PICTURE_RECOG = 0x11,
|
||
TURING_COLLECT_RESOURCE = 0x12,
|
||
TURING_PICTURE_PLAY_END = 0x13,
|
||
TURING_QUIT = 0xff,
|
||
};
|
||
|
||
enum {
|
||
WECHAT_NEXT_SONG = 0,
|
||
WECHAT_PRE_SONG,
|
||
WECHAT_PAUSE_SONG,
|
||
WECHAT_CONTINUE_SONG,
|
||
WECHAT_VOLUME_CHANGE,
|
||
WECHAT_MEDIA_END,
|
||
WECHAT_PROGRESS_INFO,
|
||
WECHAT_MEDIA_STOP,
|
||
WECHAT_SEND_INIT_STATE,
|
||
WECHAT_COLLECT_RESOURCE,
|
||
WECHAT_KILL_SELF_TASK = 0xfe,
|
||
};
|
||
|
||
enum TURING_EVENT_FUN_CODE {
|
||
TURING_EVENT_NOT_FUNC,
|
||
/*功能事件返回*/
|
||
TURING_EVENT_FUN_CHAT = 20000, //聊天 普通聊天模式
|
||
TURING_EVENT_FUN_SLEEP_CTL = 20001, //休眠控制 口令控制设备休眠,口令:再见、拜拜等
|
||
TURING_EVENT_FUN_VOL_CTL = 20002, //音量控制 控制当前音量大小,具体可调幅度根据设备不存在差异
|
||
TURING_EVENT_FUN_WEATHER_INQUIRE = 20003, //天气查询 支持全国660个主要城市和地区的天气查询
|
||
TURING_EVENT_FUN_TIME_INQUIRE = 20005, //日期时间查询 查询目标地区当前日期时间
|
||
TURING_EVENT_FUN_CALCULATOR = 20006, //计算器 支持1000以内的四则混合运算
|
||
TURING_EVENT_FUN_PLAY_MUSIC = 20007, //播音乐 支持服务器本地歌曲库随机播放与点播歌曲
|
||
TURING_EVENT_FUN_PLAY_STORY = 20008, //讲故事 支持工程师爸爸随机播放与点播故事
|
||
TURING_EVENT_FUN_POETRY = 20009, //古诗词 支持5000余首古诗朗诵
|
||
TURING_EVENT_FUN_ANIMAL_SOUND = 20011, //动物叫声 支持38种常见物叫声
|
||
TURING_EVENT_FUN_KNOWLEDGE = 20012, //百科知识 支持107万个百科知识
|
||
TURING_EVENT_FUN_PHONE_CALL = 20013, //打电话 支持打电话功能
|
||
TURING_EVENT_FUN_GUESS_SOUND = 20014, //猜叫声 猜动物叫声游戏
|
||
TURING_EVENT_FUN_TRANSLATION = 20015, //中英互译 中文翻译英文,英文翻译中文
|
||
TURING_EVENT_FUN_DANCE = 20016, //跳舞 命令机器人跳舞
|
||
TURING_EVENT_FUN_ENGLISHSPEAK = 20018, //英文对话 返回的为英文
|
||
TURING_EVENT_FUN_INSTRUMENT = 20019, //乐器声音 播放乐器的声音
|
||
TURING_EVENT_FUN_NATURE_SOUND = 20020, //大自然的声音 播放打雷等大自然的声音
|
||
TURING_EVENT_FUN_SCREEN_LIGHT = 20021, //屏幕亮度 调整屏幕亮度
|
||
TURING_EVENT_FUN_BATTERY_CHECK = 20022, //电量查询 暂不支持
|
||
TURING_EVENT_FUN_SPORT_CTL = 20023, //运动控制 控制机器人运动
|
||
TURING_EVENT_FUN_PHOTO_CTL = 20024, //拍照 发出拍照指令
|
||
TURING_EVENT_FUN_ALARM_CTL = 20025, //闹钟 设置闹钟或提醒
|
||
TURING_EVENT_FUN_OPEN_APP = 20026, //打开应用 打开应用,需要上传应用列表
|
||
TURING_EVENT_FUN_KNOWLEDGE_REPOSITORY = 20027, //知识库 智能FAQ,需设置知识库
|
||
TURING_EVENT_FUN_PICTURE_RECOGNITION = 20039, //绘本识别 绘本识别返回结果
|
||
TURING_EVENT_FUN_ACTIVE_INTERACTION = 29998, //主动交互 机器人长时间无交互由机器人主动交互
|
||
TURING_EVENT_FUN_PROMPT_TONE = 29999, //提示语 开机等场景下的提示语
|
||
};
|
||
|
||
enum {
|
||
TURING_FUN_PLAY_OPR_NOR = 1000,
|
||
TURING_FUN_PLAY_OPR_PREV = 2005,
|
||
TURING_FUN_PLAY_OPR_NEXT = 2006,
|
||
TURING_FUN_PLAY_OPR_STOP = 2002,
|
||
TURING_FUN_PLAY_OPR_CYCLE = 3002,
|
||
TURING_FUN_PLAY_OPR_PAUSE = 1200,
|
||
TURING_FUN_PLAY_OPR_CONTINUE = 1300,
|
||
};
|
||
|
||
typedef enum {
|
||
TURING_ERR_NON,
|
||
TURING_ERR_MALLOC,
|
||
TURING_ERR_ENC_INIT,
|
||
TURING_ERR_ENC_OPEN,
|
||
TURING_ERR_ENC_START,
|
||
TURING_ERR_ENC_PAUSE,
|
||
TURING_ERR_ENC_STOP,
|
||
TURING_ERR_ENC_WRITE,
|
||
TURING_ERR_POINT_NULL,
|
||
TURING_ERR_THREAD_FORK,
|
||
TURING_ERR_SOCKET_FD,
|
||
TURING_ERR_BIND,
|
||
TURING_ERR_HOST_IP,
|
||
TURING_ERR_CONNECT,
|
||
TURING_ERR_SEND_DATA,
|
||
TURING_ERR_RECV_DATA,
|
||
TURING_ERR_HTTP_CODE,
|
||
} TURING_ERR;
|
||
|
||
struct turing_para {
|
||
ASR_TYPE asr;
|
||
TTS_TYPE tts;
|
||
OUT_TXT flag;
|
||
STREAM_CTL real_time;
|
||
int index;
|
||
int book_id;
|
||
int camera_id;
|
||
int page_num;
|
||
int piece_index;
|
||
CMD_DODE cmd_code;
|
||
ENCODE_MODE encode;
|
||
MUTUAL_TYPE type;
|
||
u8 speed; //1-9
|
||
u8 pitch; //1-9
|
||
u8 tone; //0-15 20-22
|
||
u8 volume; //1-9
|
||
u8 asr_lan; //0-zh 1-en
|
||
u8 tts_lan; //0-zh 1-en
|
||
u8 voice_mode;
|
||
u8 recv_rsp_cnt;
|
||
u8 ocr_flag;
|
||
u8 finger_flag;
|
||
u8 oral_flag;
|
||
char identify[20];
|
||
char token[65];
|
||
char user_id[17];
|
||
char aes_key[17];
|
||
char api_key[33];
|
||
const char *oral_string;
|
||
};
|
||
|
||
|
||
int turing_app_init(void);
|
||
void turing_app_uninit(void);
|
||
int turing_recorder_start(u16 sample_rate, u8 voice_mode);
|
||
int turing_recorder_stop(u8 voice_mode);
|
||
void JL_turing_media_speak_play(const char *url);
|
||
void JL_turing_media_audio_play(const char *url);
|
||
void JL_turing_picture_audio_play(const char *url);
|
||
void JL_turing_volume_change_notify(int volume);
|
||
void JL_turing_rec_err_notify(void *arg);
|
||
u8 get_turing_msg_notify(void);
|
||
u8 get_turing_rec_is_stopping(void);
|
||
u8 turing_app_get_connect_status(void);
|
||
|
||
#endif //_TURING_H_
|