From 2a02dd65bece916d383fee20db51f329cfa12bfd Mon Sep 17 00:00:00 2001 From: Xiaoxia Date: Fri, 8 Aug 2025 21:50:28 +0800 Subject: [PATCH] fix ReadAudioData frame duration (#1051) --- main/audio/audio_service.cc | 4 ++-- main/audio/processors/afe_audio_processor.cc | 2 +- main/audio/wake_words/afe_wake_word.cc | 2 +- main/audio/wake_words/custom_wake_word.cc | 2 +- main/audio/wake_words/esp_wake_word.cc | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/main/audio/audio_service.cc b/main/audio/audio_service.cc index d64bac58..573082a2 100644 --- a/main/audio/audio_service.cc +++ b/main/audio/audio_service.cc @@ -158,7 +158,7 @@ bool AudioService::ReadAudioData(std::vector& data, int sample_rate, in } if (codec_->input_sample_rate() != sample_rate) { - data.resize(samples * codec_->input_sample_rate() / sample_rate); + data.resize(samples * codec_->input_sample_rate() / sample_rate * codec_->input_channels()); if (!codec_->InputData(data)) { return false; } @@ -184,7 +184,7 @@ bool AudioService::ReadAudioData(std::vector& data, int sample_rate, in data = std::move(resampled); } } else { - data.resize(samples); + data.resize(samples * codec_->input_channels()); if (!codec_->InputData(data)) { return false; } diff --git a/main/audio/processors/afe_audio_processor.cc b/main/audio/processors/afe_audio_processor.cc index ead4a360..4462f9e2 100644 --- a/main/audio/processors/afe_audio_processor.cc +++ b/main/audio/processors/afe_audio_processor.cc @@ -81,7 +81,7 @@ size_t AfeAudioProcessor::GetFeedSize() { if (afe_data_ == nullptr) { return 0; } - return afe_iface_->get_feed_chunksize(afe_data_) * codec_->input_channels(); + return afe_iface_->get_feed_chunksize(afe_data_); } void AfeAudioProcessor::Feed(std::vector&& data) { diff --git a/main/audio/wake_words/afe_wake_word.cc b/main/audio/wake_words/afe_wake_word.cc index 34fe43a4..debbe6f3 100644 --- a/main/audio/wake_words/afe_wake_word.cc +++ b/main/audio/wake_words/afe_wake_word.cc @@ -111,7 +111,7 @@ size_t AfeWakeWord::GetFeedSize() { if (afe_data_ == nullptr) { return 0; } - return afe_iface_->get_feed_chunksize(afe_data_) * codec_->input_channels(); + return afe_iface_->get_feed_chunksize(afe_data_); } void AfeWakeWord::AudioDetectionTask() { diff --git a/main/audio/wake_words/custom_wake_word.cc b/main/audio/wake_words/custom_wake_word.cc index 1aba24a9..e0478919 100644 --- a/main/audio/wake_words/custom_wake_word.cc +++ b/main/audio/wake_words/custom_wake_word.cc @@ -121,7 +121,7 @@ size_t CustomWakeWord::GetFeedSize() { if (multinet_model_data_ == nullptr) { return 0; } - return multinet_->get_samp_chunksize(multinet_model_data_) * codec_->input_channels(); + return multinet_->get_samp_chunksize(multinet_model_data_); } void CustomWakeWord::StoreWakeWordData(const std::vector& data) { diff --git a/main/audio/wake_words/esp_wake_word.cc b/main/audio/wake_words/esp_wake_word.cc index 28299fd0..79d9ad80 100644 --- a/main/audio/wake_words/esp_wake_word.cc +++ b/main/audio/wake_words/esp_wake_word.cc @@ -71,7 +71,7 @@ size_t EspWakeWord::GetFeedSize() { if (wakenet_data_ == nullptr) { return 0; } - return wakenet_iface_->get_samp_chunksize(wakenet_data_) * codec_->input_channels(); + return wakenet_iface_->get_samp_chunksize(wakenet_data_); } void EspWakeWord::EncodeWakeWordData() {