Skip to content

Commit

Permalink
Add finished message
Browse files Browse the repository at this point in the history
  • Loading branch information
synesthesiam committed Sep 3, 2024
1 parent 8a8d980 commit 914ff73
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
12 changes: 9 additions & 3 deletions esphome/components/voice_assistant/voice_assistant.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -293,8 +293,6 @@ void VoiceAssistant::loop() {
msg.audio_settings = audio_settings;
msg.wake_word_phrase = this->wake_word_;
this->wake_word_ = "";
msg.pipeline_run_id = this->pipeline_run_id_;
this->pipeline_run_id_ = "";

if (this->api_client_ == nullptr || !this->api_client_->send_voice_assistant_request(msg)) {
ESP_LOGW(TAG, "Could not request start");
Expand Down Expand Up @@ -396,6 +394,11 @@ void VoiceAssistant::loop() {
this->set_timeout("playing", 50, [this]() {
this->cancel_timeout("speaker-timeout");
this->set_state_(State::IDLE, State::IDLE);

api::VoiceAssistantAnnounceFinished msg;
msg.media_id = this->announce_media_id_;
this->api_client_->send_voice_assistant_announce_finished(msg);
this->announce_media_id_ = "";
});
}
break;
Expand Down Expand Up @@ -710,6 +713,7 @@ void VoiceAssistant::on_event(const api::VoiceAssistantEventResponse &msg) {
this->defer([this, url]() {
#ifdef USE_MEDIA_PLAYER
if (this->media_player_ != nullptr) {
this->announce_media_id_ = url;
this->media_player_->make_call().set_media_url(url).set_announcement(true).perform();
}
#endif
Expand Down Expand Up @@ -871,10 +875,12 @@ void VoiceAssistant::timer_tick_() {
this->timer_tick_trigger_->trigger(res);
}

void VoiceAssistant::on_announce(const api::VoiceAssistantAnnounce &msg) {
void VoiceAssistant::on_announce(const api::VoiceAssistantAnnounceRequest &msg) {
#ifdef USE_MEDIA_PLAYER
if (this->media_player_ != nullptr) {
this->announce_media_id_ = msg.media_id;
this->media_player_->make_call().set_media_url(msg.media_id).set_announcement(true).perform();
this->set_state_(State::STREAMING_RESPONSE, State::STREAMING_RESPONSE);
}
#endif
}
Expand Down
5 changes: 2 additions & 3 deletions esphome/components/voice_assistant/voice_assistant.h
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ class VoiceAssistant : public Component {
void on_event(const api::VoiceAssistantEventResponse &msg);
void on_audio(const api::VoiceAssistantAudio &msg);
void on_timer_event(const api::VoiceAssistantTimerEventResponse &msg);
void on_announce(const api::VoiceAssistantAnnounce &msg);
void on_announce(const api::VoiceAssistantAnnounceRequest &msg);

bool is_running() const { return this->state_ != State::IDLE; }
void set_continuous(bool continuous) { this->continuous_ = continuous; }
Expand Down Expand Up @@ -248,6 +248,7 @@ class VoiceAssistant : public Component {
#endif
#ifdef USE_MEDIA_PLAYER
media_player::MediaPlayer *media_player_{nullptr};
std::string announce_media_id_{""};
#endif

bool local_output_{false};
Expand All @@ -256,8 +257,6 @@ class VoiceAssistant : public Component {

std::string wake_word_{""};

std::string pipeline_run_id_{""};

HighFrequencyLoopRequester high_freq_;

#ifdef USE_ESP_ADF
Expand Down

0 comments on commit 914ff73

Please sign in to comment.