mirror of
https://github.com/esphome/esphome.git
synced 2026-09-30 16:30:22 +00:00
[voice_assistant] Fix playback when CPU is loaded (#17043)
Co-authored-by: Kevin Ahrendt <kevin.ahrendt@openhomefoundation.org>
This commit is contained in:
co-authored by
Kevin Ahrendt
parent
be7748ccb6
commit
c7d16dde15
@@ -978,11 +978,12 @@ void VoiceAssistant::on_event(const api::VoiceAssistantEventResponse &msg) {
|
||||
void VoiceAssistant::on_audio(const api::VoiceAssistantAudio &msg) {
|
||||
#ifdef USE_SPEAKER // We should never get to this function if there is no speaker anyway
|
||||
if ((this->speaker_ != nullptr) && (this->speaker_buffer_ != nullptr)) {
|
||||
if (this->speaker_buffer_index_ + msg.data_len < SPEAKER_BUFFER_SIZE) {
|
||||
if (this->speaker_buffer_index_ + msg.data_len <= SPEAKER_BUFFER_SIZE) {
|
||||
memcpy(this->speaker_buffer_ + this->speaker_buffer_index_, msg.data, msg.data_len);
|
||||
this->speaker_buffer_index_ += msg.data_len;
|
||||
this->speaker_buffer_size_ += msg.data_len;
|
||||
this->speaker_bytes_received_ += msg.data_len;
|
||||
this->write_speaker_();
|
||||
ESP_LOGV(TAG, "Received audio: %u bytes from API", msg.data_len);
|
||||
} else {
|
||||
ESP_LOGE(TAG, "Cannot receive audio, buffer is full");
|
||||
|
||||
Reference in New Issue
Block a user