Views
No views yet
1git clone https://github.com/idiap/coqui-ai-TTS
2cd coqui-ai-TTS
3pip install -e .1import os
2import torch
3import torchaudio
4from datetime import datetime
5from TTS.tts.configs.xtts_config import XttsConfig
6from TTS.tts.models.xtts import Xtts
7import logging
8import time
9
10logger = logging.getLogger(__name__)
11
12logger.info("Loading model...")
13config = XttsConfig()
14config.load_json("xtts-v2-zh-tw/config.json")
15model = Xtts.init_from_config(config)
16model.load_checkpoint(
17 config,
18 checkpoint_path="xtts-v2-zh-tw/checkpoint.pth",
19 use_deepspeed=True,
20 eval=True,
21)
22
23model.cuda()
24phrases = [
25 "合併稅後盈653.22億元",
26 "EPS 為11.52元創下新紀錄"
27]
28
29logger.info(len(phrases))
30start_time = time.time()
31
32logger.info("Computing speaker latents...")
33gpt_cond_latent, speaker_embedding = model.get_conditioning_latents(
34 audio_path=["YOUR_REFERNCE.wav"]
35)
36
37logger.info("Inference...")
38wav_list = []
39
40for idx, sub in enumerate(phrases):
41 out = model.inference(
42 sub,
43 "zh-cn",
44 gpt_cond_latent,
45 speaker_embedding,
46 enable_text_splitting=True,
47 # top_k=40,
48 # top_p=0.5,
49 speed=1.2,
50 # temperature=0.4
51 )
52 now = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
53 # compute stats
54 process_time = time.time() - start_time
55 audio_time = len(torch.tensor(out["wav"]).unsqueeze(0) / 22050)
56 logger.warning("Processing time: %.3f", process_time)
57 logger.warning("Real-time factor: %.3f", process_time / audio_time)
58 wav_list.append(torch.tensor(out["wav"]).unsqueeze(0))
59
60combined_wav = torch.cat(wav_list, dim=1)
61logger.info(f"export: voice-{idx}-xtts.wav")
62torchaudio.save(f"voice-{idx}-xtts.wav", combined_wav, 22050)