Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
 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