1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import importlib
- from jinja2 import Template
- import random
- from core import ConfigurationManager
- class NoTemplateException(Exception):
- pass
- class Neurone:
- def __init__(self, **kwargs):
-
-
-
- self.tts = ConfigurationManager.get_default_text_to_speech()
-
- self.tts_args = ConfigurationManager.get_tts_args(self.tts)
- def say(self, message, kwargs):
-
- tts = kwargs.get('tts', None)
- if tts is not None:
- self.tts = tts
- self.tts_args = ConfigurationManager.get_tts_args(self.tts)
-
- if isinstance(message, list):
-
- message = random.choice(message)
-
- template = kwargs.get('say_template', None)
- if isinstance(message, dict):
- if template is not None:
- if isinstance(template, list):
-
- template = random.choice(template)
- t = Template(template)
- message = t.render(**message)
- else:
- raise NoTemplateException("You must specify a say_template to your Neurone for the entries ", message.keys())
-
-
- tts_backend = importlib.import_module("tts." + self.tts)
- tts_backend.say(words=message, **self.tts_args)
|