1 """Support for the MaryTTS service."""
3 from __future__
import annotations
5 from speak2mary
import MaryTTS
6 import voluptuous
as vol
10 PLATFORM_SCHEMA
as TTS_PLATFORM_SCHEMA,
19 SUPPORT_LANGUAGES = MaryTTS.supported_locales()
20 SUPPORT_CODEC = MaryTTS.supported_codecs()
21 SUPPORT_OPTIONS = [CONF_EFFECT]
22 SUPPORT_EFFECTS = MaryTTS.supported_effects().keys()
24 DEFAULT_HOST =
"localhost"
26 DEFAULT_LANG =
"en_US"
27 DEFAULT_VOICE =
"cmu-slt-hsmm"
28 DEFAULT_CODEC =
"WAVE_FILE"
29 DEFAULT_EFFECTS: dict[str, str] = {}
31 MAP_MARYTTS_CODEC = {
"WAVE_FILE":
"wav",
"AIFF_FILE":
"aiff",
"AU_FILE":
"au"}
33 PLATFORM_SCHEMA = TTS_PLATFORM_SCHEMA.extend(
35 vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string,
36 vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
37 vol.Optional(CONF_LANG, default=DEFAULT_LANG): vol.In(SUPPORT_LANGUAGES),
38 vol.Optional(CONF_VOICE, default=DEFAULT_VOICE): cv.string,
39 vol.Optional(CONF_CODEC, default=DEFAULT_CODEC): vol.In(SUPPORT_CODEC),
40 vol.Optional(CONF_EFFECT, default=DEFAULT_EFFECTS): {
41 vol.All(cv.string, vol.In(SUPPORT_EFFECTS)): cv.string
48 """Set up MaryTTS speech component."""
53 """MaryTTS speech api provider."""
56 """Init MaryTTS TTS service."""
70 """Return the default language."""
71 return self.
_mary_mary.locale
75 """Return list of supported languages."""
76 return SUPPORT_LANGUAGES
80 """Return dict include default options."""
81 return {CONF_EFFECT: self.
_effects_effects}
85 """Return a list of supported options."""
86 return SUPPORT_OPTIONS
89 """Load TTS from MaryTTS."""
90 effects = options[CONF_EFFECT]
92 data = self.
_mary_mary.speak(message, effects)
93 audiotype = MAP_MARYTTS_CODEC[self.
_mary_mary.codec]
95 return audiotype, data
def supported_options(self)
def default_options(self)
def default_language(self)
def supported_languages(self)
def get_tts_audio(self, message, language, options)
def __init__(self, hass, conf)
def get_engine(hass, config, discovery_info=None)