11# -*- coding: utf-8 -*-
22"""
3- KhanomTan TTS model V1.0
3+ KhanomTan TTS model
44
55KhanomTan TTS (ขนมตาล) is a open-source Thai text-to-speech model that supports multilingual speakers.
66It supports Thai, English, and others.
77
8- Homepage: `https://github.com/wannaphong/KhanomTan-TTS-v1.0 <https://github.com/wannaphong/KhanomTan-TTS-v1.0>`_
8+ KhanomTan TTS v1.0: `https://github.com/wannaphong/KhanomTan-TTS-v1.0 <https://github.com/wannaphong/KhanomTan-TTS-v1.0>`_
9+ KhanomTan TTS v1.1: `https://github.com/wannaphong/KhanomTan-TTS-v1.1 <https://github.com/wannaphong/KhanomTan-TTS-v1.1>`_
910"""
1011import tempfile
1112from TTS .utils .synthesizer import Synthesizer
1213from huggingface_hub import hf_hub_download
1314
1415
1516class KhanomTan :
16- def __init__ (self , mode ) -> None :
17- self .config_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v1.0" ,filename = "config.json" ,force_filename = "config.json" )
18- self .speakers_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v1.0" ,filename = "speakers.pth" ,force_filename = "speakers.pth" )
19- self .languages_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v1.0" ,filename = "language_ids.json" ,force_filename = "language_ids.json" )
20- self .speaker_encoder_model_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v1.0" ,filename = "model_se.pth" ,force_filename = "model_se.pth" )
21- self .speaker_encoder_config_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v1.0" ,filename = "config_se.json" ,force_filename = "config_se.json" )
17+ def __init__ (self , mode , version = "1.0" ) -> None :
18+ self .version = version
19+ if self .version not in ["1.0" ,"1.1" ]:
20+ raise NotImplementedError ("KhanomTan don't have v{0}." .format (self .version ))
21+ if self .version == "1.0" :
22+ self .best_model_path_name = "best_model.pth"
23+ self .last_checkpoint_model_path_name = "checkpoint_440000.pth"
24+ else :
25+ self .best_model_path_name = "best_model.pth"
26+ self .last_checkpoint_model_path_name = "checkpoint_440000.pth"
27+ self .config_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v{0}" .format (self .version ),filename = "config.json" ,force_filename = "config-v{0}.json" .format (self .version ))
28+ self .speakers_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v{0}" .format (self .version ),filename = "speakers.pth" ,force_filename = "speakers-v{0}.pth" .format (self .version ))
29+ self .languages_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v{0}" .format (self .version ),filename = "language_ids.json" ,force_filename = "language_ids-v{0}.json" .format (self .version ))
30+ self .speaker_encoder_model_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v{0}" .format (self .version ),filename = "model_se.pth" ,force_filename = "model_se.pth" )
31+ self .speaker_encoder_config_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v{0}" .format (self .version ),filename = "config_se.json" ,force_filename = "config_se.json" )
2232 self .synthesizer = None
2333 with open (self .config_path ,"r" ) as f :
2434 _temp = f .read ()
@@ -35,7 +45,7 @@ def load_synthesizer(self, mode):
3545 mode: The model mode (best_mode or last_checkpoint)
3646 """
3747 if mode == "best_model" :
38- self .best_model_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v1.0" ,filename = "best_model.pth" ,force_filename = "best_model.pth" )
48+ self .best_model_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v{0}" . format ( self . version ) ,filename = self . best_model_path_name ,force_filename = "best_model-v{0} .pth" . format ( self . version ) )
3949 self .synthesizer = Synthesizer (
4050 self .best_model_path ,
4151 self .config_path ,
@@ -48,7 +58,7 @@ def load_synthesizer(self, mode):
4858 False
4959 )
5060 else :
51- self .last_checkpoint_model_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v1.0" ,filename = "checkpoint_440000.pth" ,force_filename = "checkpoint_440000 .pth" )
61+ self .last_checkpoint_model_path = hf_hub_download (repo_id = "wannaphong/khanomtan-tts-v{0}" . format ( self . version ) ,filename = self . last_checkpoint_model_path_name ,force_filename = "last_checkpoint-v{0} .pth" . format ( self . version ) )
5262 self .synthesizer = Synthesizer (
5363 self .last_checkpoint_model_path ,
5464 self .config_path ,
0 commit comments