|
|
@@ -66,11 +66,6 @@ class CosyVoiceModel:
|
|
|
llm_llm = torch.jit.load(llm_llm_model)
|
|
|
self.llm.llm = llm_llm
|
|
|
|
|
|
- def load_trt(self):
|
|
|
- # TODO 你需要的TRT推理的准备
|
|
|
- self.flow.decoder.estimator = xxx
|
|
|
- self.flow.decoder.session = xxx
|
|
|
-
|
|
|
def llm_job(self, text, prompt_text, llm_prompt_speech_token, llm_embedding, uuid):
|
|
|
with self.llm_context:
|
|
|
for i in self.llm.inference(text=text.to(self.device),
|
|
|
@@ -126,7 +121,6 @@ class CosyVoiceModel:
|
|
|
self.tts_speech_token_dict[this_uuid], self.llm_end_dict[this_uuid], self.mel_overlap_dict[this_uuid], self.hift_cache_dict[this_uuid] = [], False, None, None
|
|
|
p = threading.Thread(target=self.llm_job, args=(text, prompt_text, llm_prompt_speech_token, llm_embedding, this_uuid))
|
|
|
p.start()
|
|
|
- p.join()
|
|
|
if stream is True:
|
|
|
token_hop_len = self.token_min_hop_len
|
|
|
while True:
|
|
|
@@ -147,7 +141,7 @@ class CosyVoiceModel:
|
|
|
token_hop_len = min(self.token_max_hop_len, int(token_hop_len * self.stream_scale_factor))
|
|
|
if self.llm_end_dict[this_uuid] is True and len(self.tts_speech_token_dict[this_uuid]) < token_hop_len + self.token_overlap_len:
|
|
|
break
|
|
|
- # p.join()
|
|
|
+ p.join()
|
|
|
# deal with remain tokens, make sure inference remain token len equals token_hop_len when cache_speech is not None
|
|
|
this_tts_speech_token = torch.concat(self.tts_speech_token_dict[this_uuid], dim=1)
|
|
|
with self.flow_hift_context:
|
|
|
@@ -160,7 +154,7 @@ class CosyVoiceModel:
|
|
|
yield {'tts_speech': this_tts_speech.cpu()}
|
|
|
else:
|
|
|
# deal with all tokens
|
|
|
- # p.join()
|
|
|
+ p.join()
|
|
|
this_tts_speech_token = torch.concat(self.tts_speech_token_dict[this_uuid], dim=1)
|
|
|
with self.flow_hift_context:
|
|
|
this_tts_speech = self.token2wav(token=this_tts_speech_token,
|