diff --git a/main/boards/lilygo-t-cameraplus-s3/config.h b/main/boards/lilygo-t-cameraplus-s3/config.h index f87888a4..4d4b1ded 100644 --- a/main/boards/lilygo-t-cameraplus-s3/config.h +++ b/main/boards/lilygo-t-cameraplus-s3/config.h @@ -4,15 +4,16 @@ #include #include "pin_config.h" -#define AUDIO_INPUT_REFERENCE true -#define AUDIO_INPUT_SAMPLE_RATE 24000 +#define AUDIO_INPUT_SAMPLE_RATE 16000 #define AUDIO_OUTPUT_SAMPLE_RATE 24000 #ifdef CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_0_V1_1 +#define AUDIO_INPUT_REFERENCE true #define AUDIO_MIC_I2S_GPIO_BCLK static_cast(MSM261_BCLK) #define AUDIO_MIC_I2S_GPIO_WS static_cast(MSM261_WS) #define AUDIO_MIC_I2S_GPIO_DATA static_cast(MSM261_DATA) #elif defined CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3_V1_2 +#define AUDIO_INPUT_REFERENCE false #define AUDIO_MIC_I2S_GPIO_BCLK GPIO_NUM_NC #define AUDIO_MIC_I2S_GPIO_WS static_cast(MP34DT05TR_LRCLK) #define AUDIO_MIC_I2S_GPIO_DATA static_cast(MP34DT05TR_DATA) diff --git a/main/boards/lilygo-t-cameraplus-s3/tcamerapluss3_audio_codec.cc b/main/boards/lilygo-t-cameraplus-s3/tcamerapluss3_audio_codec.cc index f9ad8465..365d9ca7 100644 --- a/main/boards/lilygo-t-cameraplus-s3/tcamerapluss3_audio_codec.cc +++ b/main/boards/lilygo-t-cameraplus-s3/tcamerapluss3_audio_codec.cc @@ -140,10 +140,17 @@ void Tcamerapluss3AudioCodec::EnableOutput(bool enable) { AudioCodec::EnableOutput(enable); } -int Tcamerapluss3AudioCodec::Read(int16_t *dest, int samples){ - if (input_enabled_){ +int Tcamerapluss3AudioCodec::Read(int16_t *dest, int samples) { + if (input_enabled_) { size_t bytes_read; i2s_channel_read(rx_handle_, dest, samples * sizeof(int16_t), &bytes_read, portMAX_DELAY); + + // 麦克风接收音量放大20倍(限制在 int16_t 范围内防止溢出) + int16_t *ptr = dest; + for (int i = 0; i < samples; i++) { + int32_t amplified = *ptr * 20; + *ptr++ = (amplified > 32767) ? 32767 : (amplified < -32768) ? -32768 : amplified; + } } return samples; }