Fix 400 This voice does not support speaking rate or pitch parameters at this time for Google Cloud Journey voices (#134255)

This commit is contained in:
tronikos 2024-12-30 00:20:35 -08:00 committed by GitHub
parent a7c2d96ecf
commit af97bf1c5f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 28 additions and 6 deletions

View File

@ -20,6 +20,10 @@ CONF_GAIN = "gain"
CONF_PROFILES = "profiles" CONF_PROFILES = "profiles"
CONF_TEXT_TYPE = "text_type" CONF_TEXT_TYPE = "text_type"
DEFAULT_SPEED = 1.0
DEFAULT_PITCH = 0
DEFAULT_GAIN = 0
# STT constants # STT constants
CONF_STT_MODEL = "stt_model" CONF_STT_MODEL = "stt_model"

View File

@ -31,7 +31,10 @@ from .const import (
CONF_SPEED, CONF_SPEED,
CONF_TEXT_TYPE, CONF_TEXT_TYPE,
CONF_VOICE, CONF_VOICE,
DEFAULT_GAIN,
DEFAULT_LANG, DEFAULT_LANG,
DEFAULT_PITCH,
DEFAULT_SPEED,
) )
DEFAULT_VOICE = "" DEFAULT_VOICE = ""
@ -104,15 +107,15 @@ def tts_options_schema(
), ),
vol.Optional( vol.Optional(
CONF_SPEED, CONF_SPEED,
default=defaults.get(CONF_SPEED, 1.0), default=defaults.get(CONF_SPEED, DEFAULT_SPEED),
): NumberSelector(NumberSelectorConfig(min=0.25, max=4.0, step=0.01)), ): NumberSelector(NumberSelectorConfig(min=0.25, max=4.0, step=0.01)),
vol.Optional( vol.Optional(
CONF_PITCH, CONF_PITCH,
default=defaults.get(CONF_PITCH, 0), default=defaults.get(CONF_PITCH, DEFAULT_PITCH),
): NumberSelector(NumberSelectorConfig(min=-20.0, max=20.0, step=0.1)), ): NumberSelector(NumberSelectorConfig(min=-20.0, max=20.0, step=0.1)),
vol.Optional( vol.Optional(
CONF_GAIN, CONF_GAIN,
default=defaults.get(CONF_GAIN, 0), default=defaults.get(CONF_GAIN, DEFAULT_GAIN),
): NumberSelector(NumberSelectorConfig(min=-96.0, max=16.0, step=0.1)), ): NumberSelector(NumberSelectorConfig(min=-96.0, max=16.0, step=0.1)),
vol.Optional( vol.Optional(
CONF_PROFILES, CONF_PROFILES,

View File

@ -35,7 +35,10 @@ from .const import (
CONF_SPEED, CONF_SPEED,
CONF_TEXT_TYPE, CONF_TEXT_TYPE,
CONF_VOICE, CONF_VOICE,
DEFAULT_GAIN,
DEFAULT_LANG, DEFAULT_LANG,
DEFAULT_PITCH,
DEFAULT_SPEED,
DOMAIN, DOMAIN,
) )
from .helpers import async_tts_voices, tts_options_schema, tts_platform_schema from .helpers import async_tts_voices, tts_options_schema, tts_platform_schema
@ -191,11 +194,23 @@ class BaseGoogleCloudProvider:
ssml_gender=gender, ssml_gender=gender,
name=voice, name=voice,
), ),
# Avoid: "This voice does not support speaking rate or pitch parameters at this time."
# by not specifying the fields unless they differ from the defaults
audio_config=texttospeech.AudioConfig( audio_config=texttospeech.AudioConfig(
audio_encoding=encoding, audio_encoding=encoding,
speaking_rate=options[CONF_SPEED], speaking_rate=(
pitch=options[CONF_PITCH], options[CONF_SPEED]
volume_gain_db=options[CONF_GAIN], if options[CONF_SPEED] != DEFAULT_SPEED
else None
),
pitch=(
options[CONF_PITCH]
if options[CONF_PITCH] != DEFAULT_PITCH
else None
),
volume_gain_db=(
options[CONF_GAIN] if options[CONF_GAIN] != DEFAULT_GAIN else None
),
effects_profile_id=options[CONF_PROFILES], effects_profile_id=options[CONF_PROFILES],
), ),
) )