From a7d82afcecefc5dfcd1f649ab4830816112110d0 Mon Sep 17 00:00:00 2001 From: LittleMouse Date: Mon, 8 Sep 2025 18:05:59 +0800 Subject: [PATCH] [fix] fix alsa audio cap --- projects/llm_framework/main_audio/src/alsa_audio.c | 4 +++- projects/llm_framework/main_audio/src/main.cpp | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/projects/llm_framework/main_audio/src/alsa_audio.c b/projects/llm_framework/main_audio/src/alsa_audio.c index 73aca0f..944497a 100644 --- a/projects/llm_framework/main_audio/src/alsa_audio.c +++ b/projects/llm_framework/main_audio/src/alsa_audio.c @@ -11,6 +11,7 @@ static int gcapLoopExit = 0; void alsa_cap_start(unsigned int card, unsigned int device, float Volume, int channel, int rate, int bit, AUDIOCallback callback) { + gcapLoopExit = 0; struct pcm_config config; unsigned int pcm_open_flags; struct pcm *pcm; @@ -23,7 +24,7 @@ void alsa_cap_start(unsigned int card, unsigned int device, float Volume, int ch memset(&config, 0, sizeof(config)); config.channels = channel; config.rate = 48000; // TODO: 部分USB MIC仅支持48k,暂时固定采集为48k - config.period_size = 512; + config.period_size = 120; config.period_count = 4; config.format = PCM_FORMAT_S16_LE; config.start_threshold = 0; @@ -123,6 +124,7 @@ void alsa_cap_start(unsigned int card, unsigned int device, float Volume, int ch } free(buffer); pcm_close(pcm); + printf("Total frames captured: %u\n", total_frames_read); } void alsa_close_cap() diff --git a/projects/llm_framework/main_audio/src/main.cpp b/projects/llm_framework/main_audio/src/main.cpp index fdd2506..a892e3b 100644 --- a/projects/llm_framework/main_audio/src/main.cpp +++ b/projects/llm_framework/main_audio/src/main.cpp @@ -105,7 +105,12 @@ private: void _cap_stop() { +#if (defined(CONFIG_AX_620E_MSP_ENABLED) || defined(CONFIG_AX_620Q_MSP_ENABLED)) && !defined(CONFIG_AXCL_ENABLED) ax_close_cap(); + +#else + alsa_close_cap(); +#endif if (audio_cap_thread_) { audio_cap_thread_->join(); audio_cap_thread_.reset();