From 40d0d0d844e030326fb26cb12945f935f5fa00fa Mon Sep 17 00:00:00 2001 From: Michael Chung Date: Mon, 2 Oct 2023 20:17:36 -0400 Subject: [PATCH] Changing up enqueue_infer_tts_handler to allow embedding tokens. --- .../enqueue_infer_tts_handler.rs | 1 + .../voice_designer/enqueue_tts_request.rs | 37 +++++++++++++++---- .../service/web/storyteller_web/src/routes.rs | 2 +- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs index 29753f6587..74597efcac 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/tts/enqueue_infer_tts_handler/enqueue_infer_tts_handler.rs @@ -73,6 +73,7 @@ const MAX_TTS_LENGTH : usize = 10_000; pub struct InferTtsRequest { uuid_idempotency_token: String, tts_model_token: String, + embedding_token: Option, // for any voice cloning based system that uses embeddings or prompts inference_text: String, creator_set_visibility: Option, is_storyteller_demo: Option, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/enqueue_tts_request.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/enqueue_tts_request.rs index b14a611c7c..853e998c75 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/enqueue_tts_request.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/voice_designer/enqueue_tts_request.rs @@ -23,6 +23,7 @@ pub struct EnqueueTTSRequest { pub struct EnqueueTTSRequestSuccessResponse { pub success: bool, pub inference_job_token: InferenceJobToken, + pub embedding_token: str } #[derive(Debug)] @@ -61,20 +62,40 @@ impl std::fmt::Display for EnqueueTTSRequestError { } } - +// TODO Delete later. +// Not gonna go this route, going to leverage enqueue_infer_tts_handler.rs instead. pub async fn enqueue_tts_request(http_request: HttpRequest, request: web::Json, server_state: web::Data>) -> Result { // Implementation for enqueuing a TTS request + + // do something with user session check if the user should even be able to access the end point + + - let mut mysql_connection = server_state.mysql_pool - .acquire() - .await - .map_err(|err| { - warn!("MySql pool error: {:?}", err); - EnqueueTTSRequestError::ServerError - })?; + // let mut mysql_connection = server_state.mysql_pool + // .acquire() + // .await + // .map_err(|err| { + // warn!("MySql pool error: {:?}", err); + // EnqueueTTSRequestError::ServerError + // })?; + +// check for session later + +// grab any data from other sources from GCB + +// rate limiter + + +// remap the json into data for lookup in the DB and for other processes, from the request + +// create the inference args here + +// enqueue a zero shot tts request here... + +// create the job record here! explore the table HttpResponse::Ok().json("TTS request enqueued successfully"); } \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/routes.rs b/crates/service/web/storyteller_web/src/routes.rs index 23baaa5b2b..794760c6c3 100644 --- a/crates/service/web/storyteller_web/src/routes.rs +++ b/crates/service/web/storyteller_web/src/routes.rs @@ -1160,7 +1160,7 @@ fn add_voice_designer_routes (app:App)-> App ) .service( web::scope("/inference") - .route("/enqueue_tts", web::post().to(enqueue_tts_request)) + .route("/enqueue_tts", web::post().to(enqueue_infer_tts_handler)) .route("/enqueue_vc", web::post().to(enqueue_vc_request)) ) .service(