Spaces:
Build error
Build error
import os | |
from concurrent.futures import ThreadPoolExecutor | |
from TTS.api import TTS | |
from shortGPT.audio.voice_module import VoiceModule | |
from shortGPT.config.languages import ( | |
EDGE_TTS_VOICENAME_MAPPING, | |
LANGUAGE_ACRONYM_MAPPING, | |
Language, | |
) | |
from torch.cuda import is_available | |
def run_async_func(loop, func): | |
return loop.run_until_complete(func) | |
class CoquiVoiceModule(VoiceModule): | |
def __init__(self, voiceName, language="en"): | |
self.voiceName = voiceName | |
self.device = "cuda" if is_available() else "cpu" | |
self.language = language | |
os.environ["COQUI_TOS_AGREED"] = "1" | |
self.tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2") | |
super().__init__() | |
def update_usage(self): | |
return None | |
def get_remaining_characters(self): | |
return 999999999999 | |
def generate_voice(self, text, outputfile): | |
try: | |
self.tts.to(self.device) | |
self.tts.tts_to_file( | |
text=text, | |
file_path=outputfile, | |
speaker=self.voiceName, | |
language=self.language, | |
split_sentences=True, | |
) | |
except Exception as e: | |
print("Error generating audio using coqui audio", e) | |
raise Exception( | |
"An error happened during coqui audio generation, no output audio generated", | |
e, | |
) | |
if not os.path.exists(outputfile): | |
print( | |
"An error happened during coqui audio generation, no output audio generated" | |
) | |
raise Exception( | |
"An error happened during coqui audio generation, no output audio generated" | |
) | |
return outputfile | |