Spaces:
Running
on
Zero
Running
on
Zero
from modules.ChatTTS import ChatTTS | |
import torch | |
from modules import config | |
import logging | |
logger = logging.getLogger(__name__) | |
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu") | |
print(f"device use {device}") | |
chat_tts = None | |
def load_chat_tts(): | |
global chat_tts | |
if chat_tts: | |
return chat_tts | |
chat_tts = ChatTTS.Chat() | |
chat_tts.load_models( | |
compile=config.enable_model_compile, | |
source="local", | |
local_path="./models/ChatTTS", | |
device=device, | |
) | |
if config.model_config.get("half", False): | |
logging.info("half precision enabled") | |
for model_name, model in chat_tts.pretrain_models.items(): | |
if isinstance(model, torch.nn.Module): | |
model.cpu() | |
if torch.cuda.is_available(): | |
torch.cuda.empty_cache() | |
model.half() | |
if torch.cuda.is_available(): | |
model.cuda() | |
model.eval() | |
logger.log(logging.INFO, f"{model_name} converted to half precision.") | |
return chat_tts | |