diff --git a/tts_service/src/inference/inference.rs b/tts_service/src/inference/inference.rs index c282f870c0..53d270d512 100644 --- a/tts_service/src/inference/inference.rs +++ b/tts_service/src/inference/inference.rs @@ -10,7 +10,7 @@ pub trait InferencePipelineStart <'a> { //fn infer_mel<'b>(self, text: &'b str, speaker_id: i32) -> AnyhowResult + 'a>>; fn infer_mel(self, text: &str, speaker_id: i64) - -> AnyhowResult>>; + -> AnyhowResult + 'a>>; } pub trait InferencePipelineMelDone <'b> { diff --git a/tts_service/src/inference/pipelines/glowtts_multispeaker_melgan.rs b/tts_service/src/inference/pipelines/glowtts_multispeaker_melgan.rs index 82a469a09b..891c66091b 100644 --- a/tts_service/src/inference/pipelines/glowtts_multispeaker_melgan.rs +++ b/tts_service/src/inference/pipelines/glowtts_multispeaker_melgan.rs @@ -37,18 +37,18 @@ impl <'a> InferencePipelineStart<'a> for GlowTtsMultiSpeakerMelganPipeline<'a> { type TtsModel = &'a ArpabetGlowTtsMultiSpeakerModel; type VocoderModel = &'a MelganModel; - fn infer_mel(self, text: &str, speaker_id: i64) -> AnyhowResult>> { - unimplemented!(); + fn infer_mel(self, text: &str, speaker_id: i64) -> AnyhowResult + 'a>> { + let boxed : Box> = Box::new(GlowTtsMultiSpeakerMelganPipelineMelDone { + glow_tts: self.glow_tts, + melgan: self.melgan, + mel: None, + }); + + Ok(boxed) } /*fn infer_mel<'longer, 'a: 'longer>(self, text: &str, speaker_id: i32) -> AnyhowResult> { let consume: &'longer str = self.existing_state; - Ok(GlowTtsMultiSpeakerMelganPipelineMelDone { - //glow_tts: self.glow_tts, - //melgan: self.melgan, - existing_state: consume, - mel: None, - }) }*/ /*fn infer_mel<'b>(self, text: &'b str, speaker_id: i32) -> AnyhowResult + 'a>> { @@ -65,17 +65,14 @@ impl <'a> InferencePipelineStart<'a> for GlowTtsMultiSpeakerMelganPipeline<'a> { }*/ } -impl <'a> InferencePipelineMelDone<'a> for Box> { +impl <'a> InferencePipelineMelDone<'a> for GlowTtsMultiSpeakerMelganPipelineMelDone<'a> { type TtsModel = &'a ArpabetGlowTtsMultiSpeakerModel; type VocoderModel = &'a MelganModel; fn next(self: Box) -> AnyhowResult + 'a>> { - let glow_tts : &'a ArpabetGlowTtsMultiSpeakerModel = self.glow_tts; - let melgan : &'a MelganModel = self.melgan; - let boxed : Box> = Box::new(GlowTtsMultiSpeakerMelganPipelineAudioDone { - glow_tts, - melgan, + glow_tts: self.glow_tts, + melgan: self.melgan, mel: None, wave_audio: None });