def _tts_gen(self, file, format_, msg: str): prov = self.cfg.gts('providertts', 'unset') key = None if TTS.support(prov): sets = utils.rhvoice_rest_sets(self.cfg[prov]) if prov == 'rhvoice-rest' else {} try: key = self.cfg.key(prov, 'apikeytts') tts = TTS.GetTTS( prov, text=msg, buff_size=self._buff_size, speaker=self.cfg.gt(prov, 'speaker'), audio_format=format_, key=key, lang=LNG['tts_lng_dict'].get(prov, LNG['tts_lng_def']), emotion=self.cfg.gt(prov, 'emotion'), url=self.cfg.gt(prov, 'server'), sets=sets, yandex_api=self.cfg.yandex_api(prov) ) except(RuntimeError, TTS.gTTSError) as e: self._synthesis_error(prov, key, e) self.file_path = self.cfg.path['tts_error'] return else: self.log(LNG['unknown_prov'].format(prov), logger.CRIT) self.file_path = self.cfg.path['tts_error'] return self._stream = utils.FakeFP() write_to = [self._stream] if file: write_to.append(open(file, 'wb')) self._ext = '.{}'.format(format_) if not file else None self._unlock() try: tts.stream_to_fps(write_to) except (RuntimeError, TTS.gTTSError) as e: self._synthesis_error(prov, key, e) for fp in write_to: fp.close() return
def _tts_gen(self, file, format_, msg: str): key = None sets = utils.rhvoice_rest_sets(self.cfg[self._provider]) if self._provider == 'rhvoice-rest' else {} try: key = self.cfg.key(self._provider, 'apikeytts') tts = TTS.GetTTS( self._provider, text=msg, buff_size=self._buff_size, speaker=self.cfg.gt(self._provider, 'speaker'), audio_format=format_, key=key, lang=self.cfg.tts_lang(self._provider), emotion=self.cfg.gt(self._provider, 'emotion'), url=self.cfg.gt(self._provider, 'server'), sets=sets, speed=self.cfg.gt(self._provider, 'speed'), slow=self.cfg.gt(self._provider, 'slow'), yandex_api=self.cfg.yandex_api(self._provider) ) except Exception as e: self._synthesis_error(key, e) self._file_path = self.cfg.path['tts_error'] return self._stream = utils.FakeFP() write_to = [self._stream] if file: write_to.append(open(file, 'wb')) self._ext = '.{}'.format(format_) if not file else None self._unlock() try: tts.stream_to_fps(write_to) except Exception as e: self._synthesis_error(key, e) for fp in write_to: fp.close()
def _tts_gen(self, file, format_, msg: str): prov = self.cfg.get('providertts', 'unset') key = self.cfg.key(prov, 'apikeytts') if TTS.support(prov): try: tts = TTS.GetTTS( prov, text=msg, speaker=self.cfg.get(prov, {}).get('speaker'), audio_format=format_, key=key, lang=self.PROVIDERS[prov], emotion=self.cfg.get(prov, {}).get('emotion'), url=self.cfg.get(prov, {}).get('server') ) except RuntimeError as e: self._synthesis_error(prov, key, e) self.file_path = self.cfg.path['tts_error'] return else: self.log('Неизвестный провайдер: {}'.format(prov), logger.CRIT) self.file_path = self.cfg.path['tts_error'] return self._stream = utils.FakeFP() write_to = [self._stream] if file: write_to.append(open(file, 'wb')) self._ext = '.{}'.format(format_) if not file else None self._unlock() try: tts.stream_to_fps(write_to) except RuntimeError as e: self._synthesis_error(prov, key, e) for fp in write_to: fp.close() return