return ERRCODE_SUCC;
}
+/* AT^LN_WS_AUDIO_INIT - 初始化WebSocket音频 */
+static uint32_t ln_ws_audio_init_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ VAD_UNUSED(para);
+ VAD_UNUSED(paraLen);
+ VAD_UNUSED(strCommonCmd);
+
+ printf("[LN][WS_AUDIO_INIT] Initializing WebSocket audio...\n");
+
+ ln_ws_audio_init();
+
+ printf("[LN][WS_AUDIO_INIT] WebSocket audio initialized successfully\n");
+ return ERRCODE_SUCC;
+}
+
+/* AT^LN_WS_AUDIO_DEINIT - 反初始化WebSocket音频 */
+static uint32_t ln_ws_audio_deinit_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ VAD_UNUSED(para);
+ VAD_UNUSED(paraLen);
+ VAD_UNUSED(strCommonCmd);
+
+ printf("[LN][WS_AUDIO_DEINIT] Deinitializing WebSocket audio...\n");
+
+ ln_ws_audio_deinit();
+
+ printf("[LN][WS_AUDIO_DEINIT] WebSocket audio deinitialized successfully\n");
+ return ERRCODE_SUCC;
+}
+
static const at_cmd_table_t g_ln_api_cmd[] = {
/* ----------------------------------- VAD ---------------------------------- */
{(char *)"AT^VAD_INIT", vad_init, (char *)"初始化 VAD"},
{(char *)"AT^LN_WS_END_AUDIO_CHAT", ln_ws_end_audio_chat_at, (char *)"结束音频聊天: AT^LN_WS_END_AUDIO_CHAT"},
{(char *)"AT^LN_WS_SEND_RANDOM_STORY", ln_ws_send_random_story_at, (char *)"发送随机故事请求: AT^LN_WS_SEND_RANDOM_STORY[=storyTheme]"},
{(char *)"AT^LN_WS_SEND_VOICE_CHAT_INTERRUPT", ln_ws_send_voice_chat_interrupt_at, (char *)"发送语音聊天打断请求: AT^LN_WS_SEND_VOICE_CHAT_INTERRUPT[=reason]"},
+ {(char *)"AT^LN_WS_AUDIO_INIT", ln_ws_audio_init_at, (char *)"初始化WebSocket音频: AT^LN_WS_AUDIO_INIT"},
+ {(char *)"AT^LN_WS_AUDIO_DEINIT", ln_ws_audio_deinit_at, (char *)"反初始化WebSocket音频: AT^LN_WS_AUDIO_DEINIT"},
/* 音频播放 */
{(char *)"AT^LN_STORY_PLAY_AT", ln_audio_play_at, (char *)"播放音频: AT^LN_STORY_PLAY_AT"},
return ret;
}
- AIVoiceAudioParams audioParams_in = {
+ ln_ws_audio_init();
+
+ // 注册音频数据写入回调
+ AI_RegisterWriteAudioDataCallback(ln_ws_audio_write_callback);
+
+ cat1_api_keep_wakeup(1);
+ cat1_api_wakeup_cat1(1);
+
+ return 0;
+}
+
+void ln_ws_audio_init(void)
+{
+ AIVoiceAudioParams audioParams_in = {
.audioFormat = MP3,
.channelCount = 1,
.sampleRate = 16000
.sampleRate = 8000
};
-
old_Start_AIVoice(AIVoiceDataCallback_ln,NULL,&audioParams_in,&audioParams_out,false);
+}
- // 注册音频数据写入回调
- AI_RegisterWriteAudioDataCallback(ln_ws_audio_write_callback);
-
- cat1_api_keep_wakeup(1);
- cat1_api_wakeup_cat1(1);
- return 0;
+void ln_ws_audio_deinit(void)
+{
+ StopAIVoice();
}
+
+
+
/* 发送文本消息:仅在连接就绪时有效 */
int ln_ws_send_text(const char *text)
{
if (ret == 0) {
LN_WS_DEBUG("VoiceChatInterrupt sent successfully\n");
- if (need_reconnect) {
+ if (1) {
// 如果检测到频繁数据接收,直接重连
LN_WS_INFO("Triggering reconnection due to frequent binary data reception\n");
if (ln_ws_reconnect() != 0) {
g_ws_connected = WS_STATE_SLEEP;
LN_WS_DEBUG("Sleep mode activated, all operations paused\n");
}
+
+ // ln_ws_audio_deinit();
return ret;
}
g_ws_connected = WS_STATE_DISCONNECTED;
LN_WS_DEBUG("Sleep mode deactivated, resuming normal operations\n");
}
-
+
+ // ln_ws_audio_init();
+
return ret;
}