MCPcopy Create free account
hub / github.com/MeiGen-AI/InfiniteTalk / process_tts_multi

Function process_tts_multi

generate_infinitetalk.py:404–451  ·  view source on GitHub ↗
(text, save_dir, voice1, voice2)

Source from the content-addressed store, hash-verified

402
403
404def process_tts_multi(text, save_dir, voice1, voice2):
405 pattern = r'\(s(\d+)\)\s*(.*?)(?=\s*\(s\d+\)|$)'
406 matches = re.findall(pattern, text, re.DOTALL)
407
408 s1_sentences = []
409 s2_sentences = []
410
411 pipeline = KPipeline(lang_code='a', repo_id='weights/Kokoro-82M')
412 for idx, (speaker, content) in enumerate(matches):
413 if speaker == '1':
414 voice_tensor = torch.load(voice1, weights_only=True)
415 generator = pipeline(
416 content, voice=voice_tensor, # <= change voice here
417 speed=1, split_pattern=r'\n+'
418 )
419 audios = []
420 for i, (gs, ps, audio) in enumerate(generator):
421 audios.append(audio)
422 audios = torch.concat(audios, dim=0)
423 s1_sentences.append(audios)
424 s2_sentences.append(torch.zeros_like(audios))
425 elif speaker == '2':
426 voice_tensor = torch.load(voice2, weights_only=True)
427 generator = pipeline(
428 content, voice=voice_tensor, # <= change voice here
429 speed=1, split_pattern=r'\n+'
430 )
431 audios = []
432 for i, (gs, ps, audio) in enumerate(generator):
433 audios.append(audio)
434 audios = torch.concat(audios, dim=0)
435 s2_sentences.append(audios)
436 s1_sentences.append(torch.zeros_like(audios))
437
438 s1_sentences = torch.concat(s1_sentences, dim=0)
439 s2_sentences = torch.concat(s2_sentences, dim=0)
440 sum_sentences = s1_sentences + s2_sentences
441 save_path1 =f'{save_dir}/s1.wav'
442 save_path2 =f'{save_dir}/s2.wav'
443 save_path_sum = f'{save_dir}/sum.wav'
444 sf.write(save_path1, s1_sentences, 24000) # save each audio file
445 sf.write(save_path2, s2_sentences, 24000)
446 sf.write(save_path_sum, sum_sentences, 24000)
447
448 s1, _ = librosa.load(save_path1, sr=16000)
449 s2, _ = librosa.load(save_path2, sr=16000)
450 # sum, _ = librosa.load(save_path_sum, sr=16000)
451 return s1, s2, save_path_sum
452
453def generate(args):
454 rank = int(os.getenv("RANK", 0))

Callers

nothing calls this directly

Calls 1

KPipelineClass · 0.90

Tested by

no test coverage detected