From 2984c1786bfea48c22c4726fdf30a0c19d9a264d Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 27 May 2020 20:15:04 -0400 Subject: [PATCH] Fix legacy API to require speaker and text Early out if not present --- tts_service/src/endpoints/legacy_speak.rs | 32 ++++++++++++++++++----- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/tts_service/src/endpoints/legacy_speak.rs b/tts_service/src/endpoints/legacy_speak.rs index c605de2ee2..553c0e9868 100644 --- a/tts_service/src/endpoints/legacy_speak.rs +++ b/tts_service/src/endpoints/legacy_speak.rs @@ -17,11 +17,11 @@ use crate::config::{Speaker, ModelPipeline}; #[derive(Deserialize)] pub struct LegacyGetSpeakRequest { /// Voice slug - v: String, - /// Volume. Not used. - vol: i32, + v: Option, /// Sentence - s: String, + s: Option, + /// Volume. Not used. + vol: Option, } pub async fn legacy_get_speak(_request: HttpRequest, @@ -30,9 +30,29 @@ pub async fn legacy_get_speak(_request: HttpRequest, ) -> std::io::Result { println!("GET /speak"); + let speaker = match query.v.as_ref() { + None => { + return Ok(HttpResponse::build(StatusCode::BAD_REQUEST) + .content_type("text/plain") + .body("Speaker parameter missing.")); + }, + Some(v) => v.to_string(), + }; + + let text = match query.s.as_ref() { + None => { + return Ok(HttpResponse::build(StatusCode::BAD_REQUEST) + .content_type("text/plain") + .body("Text parameter missing.")); + }, + Some(s) => s.to_string(), + }; + + println!("Speaker: {}, Text: {}", speaker, text); + let mut app_state = app_state.into_inner(); - let speaker = match app_state.model_configs.find_speaker_by_slug(&query.v) { + let speaker = match app_state.model_configs.find_speaker_by_slug(&speaker) { Some(speaker) => speaker, None => { return Ok(HttpResponse::build(StatusCode::NOT_FOUND) @@ -53,10 +73,8 @@ pub async fn legacy_get_speak(_request: HttpRequest, .map(|s| s.clone()) .expect("TODO ERROR HANDLING"); - let text = query.s.to_string(); println!("Tacotron Model: {}", tacotron_model); println!("Melgan Model: {}", melgan_model); - println!("Text: {}", text); let arpabet = Arpabet::load_cmudict(); let encoded = text_to_arpabet_encoding(arpabet, &text);