diff --git a/homeassistant/components/tts/__init__.py b/homeassistant/components/tts/__init__.py index 0e75de88cc5..d0faa60684f 100644 --- a/homeassistant/components/tts/__init__.py +++ b/homeassistant/components/tts/__init__.py @@ -41,7 +41,6 @@ CONF_TIME_MEMORY = 'time_memory' DEFAULT_CACHE = True DEFAULT_CACHE_DIR = "tts" -DEFAULT_LANG = 'en' DEFAULT_TIME_MEMORY = 300 SERVICE_SAY = 'say' @@ -53,7 +52,6 @@ ATTR_CACHE = 'cache' _RE_VOICE_FILE = re.compile(r"([a-f0-9]{40})_([a-z]+)\.[a-z0-9]{3,4}") PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend({ - vol.Optional(CONF_LANG, default=DEFAULT_LANG): cv.string, vol.Optional(CONF_CACHE, default=DEFAULT_CACHE): cv.boolean, vol.Optional(CONF_CACHE_DIR, default=DEFAULT_CACHE_DIR): cv.string, vol.Optional(CONF_TIME_MEMORY, default=DEFAULT_TIME_MEMORY): @@ -79,7 +77,7 @@ def async_setup(hass, config): conf = config[DOMAIN][0] if len(config.get(DOMAIN, [])) > 0 else {} use_cache = conf.get(CONF_CACHE, DEFAULT_CACHE) cache_dir = conf.get(CONF_CACHE_DIR, DEFAULT_CACHE_DIR) - time_memory = conf.get(CONF_TIME_MEMORY, DEFAULT_LANG) + time_memory = conf.get(CONF_TIME_MEMORY, DEFAULT_TIME_MEMORY) yield from tts.async_init_cache(use_cache, cache_dir, time_memory) except (HomeAssistantError, KeyError) as err: @@ -379,7 +377,7 @@ class Provider(object): """Represent a single provider.""" hass = None - language = DEFAULT_LANG + language = None def get_tts_audio(self, message): """Load tts audio file from provider.""" diff --git a/homeassistant/components/tts/google.py b/homeassistant/components/tts/google.py index b271b2468d1..92794cd00b6 100644 --- a/homeassistant/components/tts/google.py +++ b/homeassistant/components/tts/google.py @@ -10,9 +10,10 @@ import re import aiohttp import async_timeout +import voluptuous as vol import yarl -from homeassistant.components.tts import Provider +from homeassistant.components.tts import Provider, PLATFORM_SCHEMA, CONF_LANG from homeassistant.helpers.aiohttp_client import async_get_clientsession REQUIREMENTS = ["gTTS-token==1.1.1"] @@ -22,6 +23,21 @@ _LOGGER = logging.getLogger(__name__) GOOGLE_SPEECH_URL = "http://translate.google.com/translate_tts" MESSAGE_SIZE = 148 +SUPPORT_LANGUAGES = [ + 'af', 'sq', 'ar', 'hy', 'bn', 'ca', 'zh', 'zh-cn', 'zh-tw', 'zh-yue', + 'hr', 'cs', 'da', 'nl', 'en', 'en-au', 'en-uk', 'en-us', 'eo', 'fi', + 'fr', 'de', 'el', 'hi', 'hu', 'is', 'id', 'it', 'ja', 'ko', 'la', 'lv', + 'mk', 'no', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sr', 'sk', 'es', 'es-es', + 'es-us', 'sw', 'sv', 'ta', 'th', 'tr', 'vi', 'cy', +] + +DEFAULT_LANG = 'en' + + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Optional(CONF_LANG, default=DEFAULT_LANG): vol.In(SUPPORT_LANGUAGES), +}) + @asyncio.coroutine def async_get_engine(hass, config):