ebook2audiobook / lib /classes /tts_manager.py
priteshmistry's picture
Upload 22 files
aa7ea23 verified
import os
from lib.models import TTS_ENGINES
class TTSManager:
def __init__(self, session):
self.session = session
self.tts = None
self._build()
def _build(self):
if self.session['tts_engine'] in TTS_ENGINES.values():
if self.session['tts_engine'] in [TTS_ENGINES['XTTSv2'], TTS_ENGINES['BARK'], TTS_ENGINES['VITS'], TTS_ENGINES['FAIRSEQ'], TTS_ENGINES['TACOTRON2'], TTS_ENGINES['YOURTTS']]:
from lib.classes.tts_engines.coqui import Coqui
self.tts = Coqui(self.session)
#elif self.session['tts_engine'] in [TTS_ENGINES['NEW_TTS']]:
# from lib.classes.tts_engines.new_tts import NewTts
# self.tts = NewTts(self.session)
if self.tts:
return True
else:
error = 'TTS engine could not be created!'
print(error)
else:
print('Other TTS engines coming soon!')
return False
def convert_sentence2audio(self, sentence_number, sentence):
try:
if self.session['tts_engine'] in TTS_ENGINES.values():
return self.tts.convert(sentence_number, sentence)
else:
print('Other TTS engines coming soon!')
except Exception as e:
error = f'convert_sentence2audio(): {e}'
raise ValueError(e)
return False