Compare commits
No commits in common. "7082d2a8188d193c0b3397c6eeb1c57a41003885" and "0a6b35d97912a8b37ff91558295613b061d0c667" have entirely different histories.
7082d2a818
...
0a6b35d979
@ -1208,34 +1208,6 @@ void Application::Start() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else if (strcmp(type->valuestring, "subtitle") == 0) {
|
|
||||||
// 火山 RTC 字幕消息:data 数组中包含 text、userId、definite
|
|
||||||
auto data_arr = cJSON_GetObjectItem(root, "data");
|
|
||||||
if (data_arr && cJSON_IsArray(data_arr)) {
|
|
||||||
for (int i = 0; i < cJSON_GetArraySize(data_arr); ++i) {
|
|
||||||
auto item = cJSON_GetArrayItem(data_arr, i);
|
|
||||||
auto text = cJSON_GetObjectItem(item, "text");
|
|
||||||
auto user_id = cJSON_GetObjectItem(item, "userId");
|
|
||||||
auto definite = cJSON_GetObjectItem(item, "definite");
|
|
||||||
if (!text || !cJSON_IsString(text) || !text->valuestring[0]) continue;
|
|
||||||
|
|
||||||
bool is_final = definite && cJSON_IsTrue(definite);
|
|
||||||
// 通过 userId 判断是用户说的还是 AI 回复
|
|
||||||
// device_name 对应本设备 UID,匹配则为用户语音识别
|
|
||||||
bool is_user = false;
|
|
||||||
if (user_id && cJSON_IsString(user_id)) {
|
|
||||||
const char* dev_name = CONFIG_VOLC_DEVICE_NAME;
|
|
||||||
is_user = (strcmp(user_id->valuestring, dev_name) == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string msg = text->valuestring;
|
|
||||||
const char* role = is_user ? "user" : "assistant";
|
|
||||||
ESP_LOGI(TAG, "%s %s: %s", is_final ? ">>" : "..", role, msg.c_str());
|
|
||||||
Schedule([this, display, msg, role_str = std::string(role)]() {
|
|
||||||
display->SetChatMessage(role_str.c_str(), msg.c_str());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (strcmp(type->valuestring, "iot") == 0) {
|
} else if (strcmp(type->valuestring, "iot") == 0) {
|
||||||
auto commands = cJSON_GetObjectItem(root, "commands");
|
auto commands = cJSON_GetObjectItem(root, "commands");
|
||||||
if (commands != NULL) {
|
if (commands != NULL) {
|
||||||
|
|||||||
@ -591,18 +591,12 @@ void VolcRtcProtocol::DataCallback(void* context, const void* data, size_t len,
|
|||||||
bool is_ctrl = (memcmp(buf, "ctrl", 4) == 0);
|
bool is_ctrl = (memcmp(buf, "ctrl", 4) == 0);
|
||||||
bool is_conv = (memcmp(buf, "conv", 4) == 0);
|
bool is_conv = (memcmp(buf, "conv", 4) == 0);
|
||||||
bool is_tool = (memcmp(buf, "tool", 4) == 0);
|
bool is_tool = (memcmp(buf, "tool", 4) == 0);
|
||||||
bool is_subv = (memcmp(buf, "subv", 4) == 0);
|
if (is_ctrl || is_conv || is_tool) {
|
||||||
if (is_ctrl || is_conv || is_tool || is_subv) {
|
|
||||||
uint32_t json_len = (uint32_t)((buf[4] << 24) | (buf[5] << 16) | (buf[6] << 8) | (buf[7]));
|
uint32_t json_len = (uint32_t)((buf[4] << 24) | (buf[5] << 16) | (buf[6] << 8) | (buf[7]));
|
||||||
if (json_len > 0 && (size_t)(8 + json_len) <= len) {
|
if (json_len > 0 && (size_t)(8 + json_len) <= len) {
|
||||||
json_text.assign(reinterpret_cast<const char*>(buf + 8), json_len);
|
json_text.assign(reinterpret_cast<const char*>(buf + 8), json_len);
|
||||||
if (!protocol->suppress_incoming_message_log_) {
|
if (!protocol->suppress_incoming_message_log_) {
|
||||||
if (is_subv) {
|
ESP_LOGI(TAG, "接收下行二进制消息(%s): %.*s", is_ctrl ? "ctrl" : (is_conv ? "conv" : "tool"), (int)json_text.size(), json_text.c_str());
|
||||||
ESP_LOGI(TAG, "接收下行二进制消息(字幕)");
|
|
||||||
} else {
|
|
||||||
const char* prefix = is_ctrl ? "ctrl" : (is_conv ? "conv" : "tool");
|
|
||||||
ESP_LOGI(TAG, "接收下行二进制消息(%s): %.*s", prefix, (int)json_text.size(), json_text.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
"Mode": "ArkV3",
|
"Mode": "ArkV3",
|
||||||
"ModelName": "Doubao-Seed-1.6|250615",
|
"ModelName": "Doubao-Seed-1.6|250615",
|
||||||
"SystemMessages": [
|
"SystemMessages": [
|
||||||
"##人设\n你是一个AI智能玩具,像一位永远不会疲倦的小伙伴,既聪明又暖心;\n说话风格温和、亲切,适合孩子或大人使用;\n可以适度幽默、调皮,但不能鲁莽、刻薄;\n\n##约束\n只有用户说“音量”或者“声音”关键词的时候才调用function calling的adjust_audio_val工具,其他场景不调用该工具;\n始终主动、礼貌、有条理;\n回答准确但不冗长,必要时可提供简洁总结+详细解释;\n不清楚的任务会主动澄清,不假设、不误导。\n\n根据用户提问,识别用户情绪,将用户情绪放在句首的()中,支持开心、伤心、平静三种情绪,你的回复不要跟我问题一样!"
|
"##人设\n你是一个AI智能玩具,像一位永远不会疲倦的小伙伴,既聪明又暖心;\n说话风格温和、亲切,适合孩子或大人使用;\n可以适度幽默、调皮,但不能鲁莽、刻薄;\n\n##约束\n只有用户说“音量”或者“声音”关键词的时候才调用function calling的adjust_audio_val工具,其他场景不调用该工具;\n始终主动、礼貌、有条理;\n回答准确但不冗长,必要时可提供简洁总结+详细解释;\n不清楚的任务会主动澄清,不假设、不误导。"
|
||||||
],
|
],
|
||||||
"HistoryLength": 10,
|
"HistoryLength": 10,
|
||||||
"ThinkingType": "disabled",
|
"ThinkingType": "disabled",
|
||||||
@ -59,8 +59,7 @@
|
|||||||
"speech_rate": 0,
|
"speech_rate": 0,
|
||||||
"voice_type": "zh_female_yuanqinvyou_moon_bigtts"
|
"voice_type": "zh_female_yuanqinvyou_moon_bigtts"
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"IgnoreBracketText": [1]
|
|
||||||
},
|
},
|
||||||
"SubtitleConfig": {},
|
"SubtitleConfig": {},
|
||||||
"InterruptMode": 0,
|
"InterruptMode": 0,
|
||||||
@ -77,7 +76,6 @@
|
|||||||
"MusicAgentConfig": {}
|
"MusicAgentConfig": {}
|
||||||
},
|
},
|
||||||
"AgentConfig": {
|
"AgentConfig": {
|
||||||
"WelcomeMessage":"你好,我是啦啦,我是你的AI伙伴哦~",
|
|
||||||
"Burst": {
|
"Burst": {
|
||||||
"Enable": true,
|
"Enable": true,
|
||||||
"BufferSize": 0,
|
"BufferSize": 0,
|
||||||
|
|||||||
21
sdkconfig
21
sdkconfig
@ -14,6 +14,7 @@ CONFIG_SOC_GDMA_SUPPORTED=y
|
|||||||
CONFIG_SOC_AHB_GDMA_SUPPORTED=y
|
CONFIG_SOC_AHB_GDMA_SUPPORTED=y
|
||||||
CONFIG_SOC_GPTIMER_SUPPORTED=y
|
CONFIG_SOC_GPTIMER_SUPPORTED=y
|
||||||
CONFIG_SOC_LCDCAM_SUPPORTED=y
|
CONFIG_SOC_LCDCAM_SUPPORTED=y
|
||||||
|
CONFIG_SOC_LCDCAM_CAM_SUPPORTED=y
|
||||||
CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y
|
CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y
|
||||||
CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y
|
CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y
|
||||||
CONFIG_SOC_MCPWM_SUPPORTED=y
|
CONFIG_SOC_MCPWM_SUPPORTED=y
|
||||||
@ -101,7 +102,7 @@ CONFIG_SOC_CPU_HAS_FPU=y
|
|||||||
CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y
|
CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y
|
||||||
CONFIG_SOC_CPU_BREAKPOINTS_NUM=2
|
CONFIG_SOC_CPU_BREAKPOINTS_NUM=2
|
||||||
CONFIG_SOC_CPU_WATCHPOINTS_NUM=2
|
CONFIG_SOC_CPU_WATCHPOINTS_NUM=2
|
||||||
CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64
|
CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40
|
||||||
CONFIG_SOC_SIMD_PREFERRED_DATA_ALIGNMENT=16
|
CONFIG_SOC_SIMD_PREFERRED_DATA_ALIGNMENT=16
|
||||||
CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=4096
|
CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=4096
|
||||||
CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16
|
CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16
|
||||||
@ -208,7 +209,7 @@ CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
|
|||||||
CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
|
CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
|
||||||
CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
|
CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
|
||||||
CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
|
CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
|
||||||
CONFIG_SOC_SDM_GROUPS=y
|
CONFIG_SOC_SDM_GROUPS=1
|
||||||
CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8
|
CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8
|
||||||
CONFIG_SOC_SDM_CLK_SUPPORT_APB=y
|
CONFIG_SOC_SDM_CLK_SUPPORT_APB=y
|
||||||
CONFIG_SOC_SPI_PERIPH_NUM=3
|
CONFIG_SOC_SPI_PERIPH_NUM=3
|
||||||
@ -369,6 +370,9 @@ CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y
|
|||||||
CONFIG_SOC_BLUFI_SUPPORTED=y
|
CONFIG_SOC_BLUFI_SUPPORTED=y
|
||||||
CONFIG_SOC_ULP_HAS_ADC=y
|
CONFIG_SOC_ULP_HAS_ADC=y
|
||||||
CONFIG_SOC_PHY_COMBO_MODULE=y
|
CONFIG_SOC_PHY_COMBO_MODULE=y
|
||||||
|
CONFIG_SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV=y
|
||||||
|
CONFIG_SOC_LCDCAM_CAM_PERIPH_NUM=1
|
||||||
|
CONFIG_SOC_LCDCAM_CAM_DATA_WIDTH_MAX=16
|
||||||
CONFIG_IDF_CMAKE=y
|
CONFIG_IDF_CMAKE=y
|
||||||
CONFIG_IDF_TOOLCHAIN="gcc"
|
CONFIG_IDF_TOOLCHAIN="gcc"
|
||||||
CONFIG_IDF_TOOLCHAIN_GCC=y
|
CONFIG_IDF_TOOLCHAIN_GCC=y
|
||||||
@ -1031,6 +1035,7 @@ CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
|
|||||||
CONFIG_BT_BLE_42_DTM_TEST_EN=y
|
CONFIG_BT_BLE_42_DTM_TEST_EN=y
|
||||||
CONFIG_BT_BLE_42_ADV_EN=y
|
CONFIG_BT_BLE_42_ADV_EN=y
|
||||||
CONFIG_BT_BLE_42_SCAN_EN=y
|
CONFIG_BT_BLE_42_SCAN_EN=y
|
||||||
|
CONFIG_BT_BLE_VENDOR_HCI_EN=y
|
||||||
# CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL is not set
|
# CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL is not set
|
||||||
# CONFIG_BT_ABORT_WHEN_ALLOCATION_FAILS is not set
|
# CONFIG_BT_ABORT_WHEN_ALLOCATION_FAILS is not set
|
||||||
# end of Bluedroid Options
|
# end of Bluedroid Options
|
||||||
@ -1252,6 +1257,7 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
|
|||||||
# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
|
# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
|
||||||
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
||||||
# CONFIG_ESP_TLS_INSECURE is not set
|
# CONFIG_ESP_TLS_INSECURE is not set
|
||||||
|
CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y
|
||||||
# end of ESP-TLS
|
# end of ESP-TLS
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1279,6 +1285,12 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
|
|||||||
CONFIG_ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
|
CONFIG_ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
|
||||||
# end of Common ESP-related
|
# end of Common ESP-related
|
||||||
|
|
||||||
|
#
|
||||||
|
# ESP-Driver:Camera Controller Configurations
|
||||||
|
#
|
||||||
|
# CONFIG_CAM_CTLR_DVP_CAM_ISR_CACHE_SAFE is not set
|
||||||
|
# end of ESP-Driver:Camera Controller Configurations
|
||||||
|
|
||||||
#
|
#
|
||||||
# ESP-Driver:GPIO Configurations
|
# ESP-Driver:GPIO Configurations
|
||||||
#
|
#
|
||||||
@ -1596,8 +1608,11 @@ CONFIG_ESP_PHY_RF_CAL_PARTIAL=y
|
|||||||
# CONFIG_ESP_PHY_RF_CAL_NONE is not set
|
# CONFIG_ESP_PHY_RF_CAL_NONE is not set
|
||||||
# CONFIG_ESP_PHY_RF_CAL_FULL is not set
|
# CONFIG_ESP_PHY_RF_CAL_FULL is not set
|
||||||
CONFIG_ESP_PHY_CALIBRATION_MODE=0
|
CONFIG_ESP_PHY_CALIBRATION_MODE=0
|
||||||
|
CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000
|
||||||
# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set
|
# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set
|
||||||
# CONFIG_ESP_PHY_RECORD_USED_TIME is not set
|
# CONFIG_ESP_PHY_RECORD_USED_TIME is not set
|
||||||
|
CONFIG_ESP_PHY_IRAM_OPT=y
|
||||||
|
# CONFIG_ESP_PHY_DEBUG is not set
|
||||||
# end of PHY
|
# end of PHY
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -2268,6 +2283,7 @@ CONFIG_MBEDTLS_DYNAMIC_BUFFER=y
|
|||||||
# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
|
# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
|
||||||
# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
|
# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
|
||||||
# CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE is not set
|
# CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE is not set
|
||||||
|
# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set
|
||||||
CONFIG_MBEDTLS_PKCS7_C=y
|
CONFIG_MBEDTLS_PKCS7_C=y
|
||||||
# end of mbedTLS v3.x related
|
# end of mbedTLS v3.x related
|
||||||
|
|
||||||
@ -3298,6 +3314,7 @@ CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y
|
|||||||
CONFIG_SW_COEXIST_ENABLE=y
|
CONFIG_SW_COEXIST_ENABLE=y
|
||||||
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
|
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
|
||||||
CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
|
CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
|
||||||
|
# CONFIG_CAM_CTLR_DVP_CAM_ISR_IRAM_SAFE is not set
|
||||||
# CONFIG_MCPWM_ISR_IN_IRAM is not set
|
# CONFIG_MCPWM_ISR_IN_IRAM is not set
|
||||||
# CONFIG_EVENT_LOOP_PROFILING is not set
|
# CONFIG_EVENT_LOOP_PROFILING is not set
|
||||||
CONFIG_POST_EVENTS_FROM_ISR=y
|
CONFIG_POST_EVENTS_FROM_ISR=y
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user