Skip to content

Commit

Permalink
audio: increase HTTP stream timeout after send
Browse files Browse the repository at this point in the history
In commit af99de4 ("audio: reduce HTTP Stream timeout to 2s") we
changed the HTTP Stream timeout to 2s so we can indicate early when
we're not able to connect to WIS.

Unfortunately ESP HTTP Client only has a single timeout value, and we
now also abort the HTTP connection to WIS if inference takes longer than
2s. We want to keep the timeout reasonably low, as having to wait for a
STT response for too long isn't great for UX, but 2s makes it impossible
for people to test Willow with a local WIS on CPU or slow GPU.

Leave the initial timeout at 2s, but increase it to 10s on the
HTTP_STREAM_POST_REQUEST event, which happens after the HTTP client sent
header and body to WIS, but before fetching the response.
  • Loading branch information
stintel authored and kristiankielhofner committed Dec 19, 2023
1 parent efea216 commit 67ff035
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion main/audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@
#define DEFAULT_WIS_TTS_URL "https://infer.tovera.io/api/tts"
#define DEFAULT_WIS_URL "https://infer.tovera.io/api/willow"

#define HTTP_STREAM_TIMEOUT_MS 2 * 1000
#define HTTP_STREAM_TIMEOUT_MS 2 * 1000
#define HTTP_STREAM_TIMEOUT_MS_POST_REQUEST 10 * 1000

#define MULTINET_TWDT 30
#define STR_WAKE_LEN 25
Expand Down Expand Up @@ -519,6 +520,7 @@ static esp_err_t hdl_ev_hs_to_api(http_stream_event_msg_t *msg)

case HTTP_STREAM_POST_REQUEST:
ESP_LOGI(TAG, "WIS HTTP client HTTP_STREAM_POST_REQUEST, write end chunked marker");
esp_http_client_set_timeout_ms(http, HTTP_STREAM_TIMEOUT_MS_POST_REQUEST);
if (esp_http_client_write(http, "0\r\n\r\n", 5) <= 0) {
return ESP_FAIL;
}
Expand Down

0 comments on commit 67ff035

Please sign in to comment.