1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 12:59:34 +00:00

Add default voice for languages in cloud TTS (#137300)

* Add default voice for languages in cloud TTS

* Add test

* use defined voice

* Add test to ensure all default voices are valid
This commit is contained in:
Joakim Sørensen
2025-02-04 13:32:33 +01:00
committed by GitHub
parent 0a32a9d6db
commit dd1def3c5d
2 changed files with 179 additions and 9 deletions

View File

@@ -12,7 +12,12 @@ import voluptuous as vol
from homeassistant.components.assist_pipeline.pipeline import STORAGE_KEY
from homeassistant.components.cloud.const import DEFAULT_TTS_DEFAULT_VOICE, DOMAIN
from homeassistant.components.cloud.tts import PLATFORM_SCHEMA, SUPPORT_LANGUAGES, Voice
from homeassistant.components.cloud.tts import (
DEFAULT_VOICES,
PLATFORM_SCHEMA,
SUPPORT_LANGUAGES,
Voice,
)
from homeassistant.components.media_player import (
ATTR_MEDIA_CONTENT_ID,
DOMAIN as DOMAIN_MP,
@@ -61,6 +66,19 @@ def test_default_exists() -> None:
assert DEFAULT_TTS_DEFAULT_VOICE[1] in TTS_VOICES[DEFAULT_TTS_DEFAULT_VOICE[0]]
def test_all_languages_have_default() -> None:
"""Test all languages have a default voice."""
assert set(SUPPORT_LANGUAGES).difference(DEFAULT_VOICES) == set()
assert set(DEFAULT_VOICES).difference(SUPPORT_LANGUAGES) == set()
@pytest.mark.parametrize(("language", "voice"), DEFAULT_VOICES.items())
def test_default_voice_is_valid(language: str, voice: str) -> None:
"""Test that the default voice is valid."""
assert language in TTS_VOICES
assert voice in TTS_VOICES[language]
def test_schema() -> None:
"""Test schema."""
assert "nl-NL" in SUPPORT_LANGUAGES