From c35da4596741efa70e6a9f6531e3519cceb9ddc2 Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Thu, 9 Apr 2026 18:12:02 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9vad=E5=8F=82=E6=95=B0=E5=8A=A0?= =?utf8?q?=E9=80=9Fvad=E5=88=A4=E6=96=AD=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/zhihui/imsl/src/vad_server.c | 2 +- .../zhihui/leiniao/imsl_ln/ln_api_websocket.c | 34 +++++++++++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/code/sdk/zhihui/imsl/src/vad_server.c b/code/sdk/zhihui/imsl/src/vad_server.c index 2b69383d0..862f094ea 100644 --- a/code/sdk/zhihui/imsl/src/vad_server.c +++ b/code/sdk/zhihui/imsl/src/vad_server.c @@ -425,7 +425,7 @@ errcode_t vad_server_init(vad_status_callback_t callback) .min_speech_length = 240, /* 最短语音长度 (ms) */ .silence_detect_length = 300, /* 静音检测长度 (ms) */ .rule1_min_tailing_silence = 480, /* 规则1静音时间 (ms) */ - .rule2_min_tailing_silence = 960, /* 规则2静音时间 (ms) */ + .rule2_min_tailing_silence = 600, /* 规则2静音时间 (ms) */ .rule3_min_tailing_silence = 960 /* 规则3静音时间 (ms) */ }; diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c index 7a1c36026..2025db33a 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_websocket.c @@ -23,10 +23,16 @@ #endif #include "Ln_Bluetooth_apiC.h" +#define VAD_TEST_ENABLED 0 + +#if VAD_TEST_ENABLED +/* 16 kHz 单声道、由 MIDI 音高序列(C4–E4–G4–C5,120 BPM)合成的 PCM 经 LAME CBR64 编码后的 MP3 裸帧流(无 ID3 / Xing) */ +#include "ln_midi_like_16k_mp3_frames.h" +#endif // 功能开关宏定义 #define ENABLE_BINARY_DATA_INTERRUPT_CHECK 1 // 启用二进制数据间隔检查 -#define ENABLE_AUDIO_FILE_WRITE 0 // 启用音频文件写入功能(根据chat_id生成文件) +#define ENABLE_AUDIO_FILE_WRITE 1 // 启用音频文件写入功能(根据chat_id生成文件) // 主线程循环间隔时长(毫秒) #define LN_WS_MAIN_THREAD_INTERVAL_MS 500 @@ -55,7 +61,7 @@ typedef enum { } ln_ws_log_level_t; // 当前日志等级(可通过配置修改) -static ln_ws_log_level_t g_log_level = LN_WS_LOG_WARN; +static ln_ws_log_level_t g_log_level = LN_WS_LOG_DEBUG; void ln_ws_set_log_level(uint8_t level) { @@ -80,6 +86,10 @@ static const char *g_log_level_str[] = { #define LN_WS_INFO(fmt, ...) LN_WS_LOG(LN_WS_LOG_INFO, __LINE__, fmt, ##__VA_ARGS__) #define LN_WS_DEBUG(fmt, ...) LN_WS_LOG(LN_WS_LOG_DEBUG, __LINE__, fmt, ##__VA_ARGS__) + + + + /* * - g_ws_client_fd 当前 WebSocket 客户端fd * - g_ws_connected 连接状态:0=未连接,1=连接中,2=连接成功 @@ -779,7 +789,11 @@ int ln_ws_send_audio_data(const uint8_t *audio_data, uint32_t audio_size, bool f } // 发送JSON字符串 + #if VAD_TEST_ENABLED + int ret = 0; + #else int ret = uapi_ws_send_text(json_string); + #endif LN_WS_DEBUG("Sent audio data: chatId=%s, messageId=%s, size=%u, finished=%s\n", g_audio_chat_ctx.chat_id, message_id, audio_size, finished ? "true" : "false"); @@ -1131,7 +1145,7 @@ static void AIVoiceDataCallback_ln(const uint8_t* data, uint32_t size, void* use ln_ws_add_to_audio_cache(data, size); } } - LOS_Msleep(10); + LOS_Msleep(5); } // "audioBase64": @@ -1433,6 +1447,20 @@ void vad_status_callback_ln_ws(int status) ln_ws_start_vad_cooldown(); } g_vad_recognition_enabled = false; + +#if VAD_TEST_ENABLED + for(int i=0; i