// 录音结束处理函数
void ThunderBirdModel::HandleAudioRecordingEnd()
{
- return ;//需要vad的时候在处理
+ // return ;//需要vad的时候在处理
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingEnd: 录音结束");
// 获取当前视图状态
#VAD 相关配置
"imsl",
"minimp3",
+ "dmp",
+
"nativeabilityfwk",
"custom_utils",
if(ret==200)
{
dmp_read_dev_pass_save(out_buf);
+ cJSON_free(json_string);
+ return true;
}
+ else
+ {
+ cJSON_free(json_string);
+ return false;
- cJSON_free(json_string);
- return true;
+ }
+
+
}
time_t timestamp;
timestamp = time(NULL);
- if(timestamp - aut_login_time < 60 * 60 )
- {
- return true;
- }
-
char dev_pass[64]={0};
// 若内存中无 data_pass,则尝试从配置中加载
if (strlen(data_pass) == 0) {
(void)cm_get_dmp_data_pass(data_pass, sizeof(data_pass));
}
+ if(strlen(data_pass) == 0)
+ {
+ if(dmp_aut_active())//设备激活
+ {
+ (void)cm_get_dmp_data_pass(data_pass, sizeof(data_pass));
+ }
+ else
+ {
+ return false;
+ }
+ }
memcpy(dev_pass, data_pass, strlen(data_pass));
printf("dev_sign_in 2");
int count = 5;
# 公共宏定义(可选)
set(PUBLIC_DEFINES
# 例如:IMSL_LN_ENABLE=1
- ENABLE_VAD_SERVER=0
+ ENABLE_VAD_SERVER=1
)
# 根据 MINI_MP3 宏添加 MP3 解码支持
}
#endif
+static uint8_t dmp_auth=0;
/**
* @brief 处理 PCM 数据,直接送给 VAD(简化版)
* @note VAD 库支持可变长度输入(推荐 < 100ms),无需固定切分
}
pcm_call_count++;
+
+ LOGIN_SUCC:
+
+ if(dmp_auth==0)
+ {
+ char dmp_token[64];
+ if(dmp_read_dev_token(dmp_token))
+ {
+ struct AuthInfo auth_info;
+ strcpy(auth_info.dmp_token, dmp_token);
+ int ret =auth_vad(&auth_info);
+ printf("vad_process_pcm_data %d\r\n",ret);
+ dmp_auth=1;
+ }
+ else
+ {
+ if(dmp_aut_login())
+ {
+ goto LOGIN_SUCC;
+ }
+ else
+ {
+ return ERRCODE_FAIL;
+ }
+ }
+ }
+
+
+
/* 检查数据长度是否合理(VAD 推荐 < 100ms)*/
const size_t MAX_SAMPLES_PER_CALL = 1600; // 100ms @ 16kHz
// 记录接收数据的时间
g_last_binary_data_tick = osKernelGetTickCount();
+ g_vad_cooldown_active = false;
if (!is_chat_id_matched() && g_audio_playback_active) {
LN_WS_WARN("Chat ID not matched\n");