mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Add new voices for Watson TTS (#48722)
Co-authored-by: Franck Nijhof <frenck@frenck.nl> Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
b84cf915f3
commit
c2e2b046d9
@ -1,4 +1,6 @@
|
|||||||
"""Support for IBM Watson TTS integration."""
|
"""Support for IBM Watson TTS integration."""
|
||||||
|
import logging
|
||||||
|
|
||||||
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
|
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
|
||||||
from ibm_watson import TextToSpeechV1
|
from ibm_watson import TextToSpeechV1
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
@ -6,6 +8,8 @@ import voluptuous as vol
|
|||||||
from homeassistant.components.tts import PLATFORM_SCHEMA, Provider
|
from homeassistant.components.tts import PLATFORM_SCHEMA, Provider
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
CONF_URL = "watson_url"
|
CONF_URL = "watson_url"
|
||||||
CONF_APIKEY = "watson_apikey"
|
CONF_APIKEY = "watson_apikey"
|
||||||
|
|
||||||
@ -18,22 +22,32 @@ CONF_TEXT_TYPE = "text"
|
|||||||
# List from https://tinyurl.com/watson-tts-docs
|
# List from https://tinyurl.com/watson-tts-docs
|
||||||
SUPPORTED_VOICES = [
|
SUPPORTED_VOICES = [
|
||||||
"ar-AR_OmarVoice",
|
"ar-AR_OmarVoice",
|
||||||
|
"ar-MS_OmarVoice",
|
||||||
|
"de-DE_BirgitV2Voice",
|
||||||
"de-DE_BirgitV3Voice",
|
"de-DE_BirgitV3Voice",
|
||||||
"de-DE_BirgitVoice",
|
"de-DE_BirgitVoice",
|
||||||
|
"de-DE_DieterV2Voice",
|
||||||
"de-DE_DieterV3Voice",
|
"de-DE_DieterV3Voice",
|
||||||
"de-DE_DieterVoice",
|
"de-DE_DieterVoice",
|
||||||
"de-DE_ErikaV3Voice",
|
"de-DE_ErikaV3Voice",
|
||||||
|
"en-AU_CraigVoice",
|
||||||
|
"en-AU_MadisonVoice",
|
||||||
"en-GB_KateV3Voice",
|
"en-GB_KateV3Voice",
|
||||||
"en-GB_KateVoice",
|
"en-GB_KateVoice",
|
||||||
"en-GB_CharlotteV3Voice",
|
"en-GB_CharlotteV3Voice",
|
||||||
"en-GB_JamesV3Voice",
|
"en-GB_JamesV3Voice",
|
||||||
|
"en-GB_KateV3Voice",
|
||||||
|
"en-GB_KateVoice",
|
||||||
|
"en-US_AllisonV2Voice",
|
||||||
"en-US_AllisonV3Voice",
|
"en-US_AllisonV3Voice",
|
||||||
"en-US_AllisonVoice",
|
"en-US_AllisonVoice",
|
||||||
"en-US_EmilyV3Voice",
|
"en-US_EmilyV3Voice",
|
||||||
"en-US_HenryV3Voice",
|
"en-US_HenryV3Voice",
|
||||||
"en-US_KevinV3Voice",
|
"en-US_KevinV3Voice",
|
||||||
|
"en-US_LisaV2Voice",
|
||||||
"en-US_LisaV3Voice",
|
"en-US_LisaV3Voice",
|
||||||
"en-US_LisaVoice",
|
"en-US_LisaVoice",
|
||||||
|
"en-US_MichaelV2Voice",
|
||||||
"en-US_MichaelV3Voice",
|
"en-US_MichaelV3Voice",
|
||||||
"en-US_MichaelVoice",
|
"en-US_MichaelVoice",
|
||||||
"en-US_OliviaV3Voice",
|
"en-US_OliviaV3Voice",
|
||||||
@ -45,12 +59,17 @@ SUPPORTED_VOICES = [
|
|||||||
"es-LA_SofiaVoice",
|
"es-LA_SofiaVoice",
|
||||||
"es-US_SofiaV3Voice",
|
"es-US_SofiaV3Voice",
|
||||||
"es-US_SofiaVoice",
|
"es-US_SofiaVoice",
|
||||||
|
"fr-CA_LouiseV3Voice",
|
||||||
|
"fr-FR_NicolasV3Voice",
|
||||||
"fr-FR_ReneeV3Voice",
|
"fr-FR_ReneeV3Voice",
|
||||||
"fr-FR_ReneeVoice",
|
"fr-FR_ReneeVoice",
|
||||||
|
"it-IT_FrancescaV2Voice",
|
||||||
"it-IT_FrancescaV3Voice",
|
"it-IT_FrancescaV3Voice",
|
||||||
"it-IT_FrancescaVoice",
|
"it-IT_FrancescaVoice",
|
||||||
"ja-JP_EmiV3Voice",
|
"ja-JP_EmiV3Voice",
|
||||||
"ja-JP_EmiVoice",
|
"ja-JP_EmiVoice",
|
||||||
|
"ko-KR_HyunjunVoice",
|
||||||
|
"ko-KR_SiWooVoice",
|
||||||
"ko-KR_YoungmiVoice",
|
"ko-KR_YoungmiVoice",
|
||||||
"ko-KR_YunaVoice",
|
"ko-KR_YunaVoice",
|
||||||
"nl-NL_EmmaVoice",
|
"nl-NL_EmmaVoice",
|
||||||
@ -62,6 +81,25 @@ SUPPORTED_VOICES = [
|
|||||||
"zh-CN_ZhangJingVoice",
|
"zh-CN_ZhangJingVoice",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
DEPRECATED_VOICES = [
|
||||||
|
"ar-AR_OmarVoice",
|
||||||
|
"de-DE_BirgitVoice",
|
||||||
|
"de-DE_DieterVoice",
|
||||||
|
"en-GB_KateVoice",
|
||||||
|
"en-GB_KateV3Voice",
|
||||||
|
"en-US_AllisonVoice",
|
||||||
|
"en-US_LisaVoice",
|
||||||
|
"en-US_MichaelVoice",
|
||||||
|
"es-ES_EnriqueVoice",
|
||||||
|
"es-ES_LauraVoice",
|
||||||
|
"es-LA_SofiaVoice",
|
||||||
|
"es-US_SofiaVoice",
|
||||||
|
"fr-FR_ReneeVoice",
|
||||||
|
"it-IT_FrancescaVoice",
|
||||||
|
"ja-JP_EmiVoice",
|
||||||
|
"pt-BR_IsabelaVoice",
|
||||||
|
]
|
||||||
|
|
||||||
SUPPORTED_OUTPUT_FORMATS = [
|
SUPPORTED_OUTPUT_FORMATS = [
|
||||||
"audio/flac",
|
"audio/flac",
|
||||||
"audio/mp3",
|
"audio/mp3",
|
||||||
@ -82,7 +120,7 @@ CONTENT_TYPE_EXTENSIONS = {
|
|||||||
"audio/wav": "wav",
|
"audio/wav": "wav",
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFAULT_VOICE = "en-US_AllisonVoice"
|
DEFAULT_VOICE = "en-US_AllisonV3Voice"
|
||||||
DEFAULT_OUTPUT_FORMAT = "audio/mp3"
|
DEFAULT_OUTPUT_FORMAT = "audio/mp3"
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
@ -124,6 +162,12 @@ class WatsonTTSProvider(Provider):
|
|||||||
self.output_format = output_format
|
self.output_format = output_format
|
||||||
self.name = "Watson TTS"
|
self.name = "Watson TTS"
|
||||||
|
|
||||||
|
if self.default_voice in DEPRECATED_VOICES:
|
||||||
|
_LOGGER.warning(
|
||||||
|
"Watson TTS voice %s is deprecated, it may be removed in the future",
|
||||||
|
self.default_voice,
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def supported_languages(self):
|
def supported_languages(self):
|
||||||
"""Return a list of supported languages."""
|
"""Return a list of supported languages."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user