From 2eb9582d0ff9a4b66c5863b01fba4d9c51be8cbc Mon Sep 17 00:00:00 2001 From: Kevin Ahrendt Date: Thu, 1 May 2025 14:04:23 -0500 Subject: [PATCH] [micro_wake_word] Clarify spectrogram features calculation (#8669) --- esphome/components/micro_wake_word/micro_wake_word.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/esphome/components/micro_wake_word/micro_wake_word.cpp b/esphome/components/micro_wake_word/micro_wake_word.cpp index f768b661c0..46ca328730 100644 --- a/esphome/components/micro_wake_word/micro_wake_word.cpp +++ b/esphome/components/micro_wake_word/micro_wake_word.cpp @@ -404,8 +404,8 @@ size_t MicroWakeWord::generate_features_(int16_t *audio_buffer, size_t samples_a constexpr int32_t value_div = 666; // 666 = 25.6 * 26.0 after rounding int32_t value = ((frontend_output.values[i] * value_scale) + (value_div / 2)) / value_div; - value -= INT8_MIN; - features_buffer[i] = clamp(value, INT8_MIN, INT8_MAX); + value += INT8_MIN; // Adds a -128; i.e., subtracts 128 + features_buffer[i] = static_cast(clamp(value, INT8_MIN, INT8_MAX)); } return processed_samples;