Google Translate text-to-speech

Google Translate text-to-speech 集成使用非官方的 Google Translate text-to-speech engine 以自然的语音朗读文本。与名称暗示的不同,此集成仅提供文字转语音功能,不会翻译发送给它的消息。

配置

此集成可通过 UI 配置。前往 设置 > 设备与服务 添加。

支持的语言

凡是在 Google Translate 中启用了“Talk”功能的语言都受支持。以下是 Google 当前支持的语言列表。

Language CodeLanguage
afAfrikaans
amAmharic
arArabic
bgBulgarian
bnBengali
bsBosnian
caCatalan
csCzech
cyWelsh
daDanish
deGerman
elGreek
enEnglish
esSpanish
etEstonian
euBasque
fiFinnish
filFilipino (Tagalog)
frFrench
glGalician
guGujarati
haHausa
hiHindi
hrCroatian
huHungarian
idIndonesian
isIcelandic
itItalian
iwHebrew
jaJapanese
jwJavanese
kmKhmer
knKannada
koKorean
laLatin
ltLithuanian
lvLatvian
mlMalayalam
mrMarathi
msMalay
myMyanmar (Burmese)
neNepali
nlDutch
noNorwegian
paPunjabi
plPolish
ptPortuguese (Portugal, Brazil)
roRomanian
ruRussian
siSinhala (Sinhalese)
skSlovak
sqAlbanian
srSerbian
suSundanese
svSwedish
swSwahili
taTamil
teTelugu
thThai
tlTagalog (Filipino)
trTurkish
ukUkrainian
urUrdu
viVietnamese

请查看受支持 tld 的完整列表,了解允许使用的 TLD 值。当多个方言共用同一个两位语言代码时(例如 US、UK、AU),此项可用于强制指定所使用的方言。

您也可以使用下方所示的受支持 BCP 47 标签,或使用 2-2 位格式来表示受支持的方言(如 en-gben-us)。以下是当前已实现的映射列表:

DialectLanguageTLD
en-usencom
en-gbenco.uk
en-ukenco.uk
en-auencom.au
en-caenca
en-inenco.in
en-ieenie
en-zaenco.za
fr-cafrca
fr-frfrfr
pt-brptcom.br
pt-ptptpt
es-eseses
es-usescom

speak 操作

tts.speak 是使用 Google Translate TTS 的现代方式。添加 speak 操作后,选择您的 Google Translate TTS 实体(其名称通常基于创建时所选语言),再选择要接收 TTS 音频的媒体播放器实体或组,并输入要朗读的消息。

有关 speak 的更多选项,请参阅主 TTS 构建块页面中的 Speak 章节。

在 YAML 中,您的操作将如下所示:

action: tts.speak
target:
  entity_id: tts.google_en_com
data:
  media_player_entity_id: media_player.giant_tv
  message: Hello, can you hear me now?

say 操作(旧版)

Tip

当您在 configuration.yaml 中配置旧版 google_translate text-to-speech 平台时,可以使用 google_translate_say 操作。我们建议新用户改为通过 UI 设置该集成,并使用 tts.speak 操作,将相应的 Google Translate text-to-speech 实体作为目标。

google_translate_say 操作支持通过 language 设置语言,也支持通过 options 设置 tld。要朗读的文本通过 message 指定。自 0.92 版本起,操作名称还可以通过配置中的 service_name 选项定义。

对所有 media_player 设备实体进行播报:

# Replace google_translate_say with <platform>_say when you use a different platform.
action: tts.google_translate_say
data:
  entity_id: all
  message: "May the force be with you."

media_player.floor 设备实体进行播报:

action: tts.google_translate_say
data:
  entity_id: media_player.floor
  message: "May the force be with you."

使用法语对 media_player.floor 设备实体进行播报:

action: tts.google_translate_say
data:
  entity_id: media_player.floor
  message: "Que la force soit avec toi."
  language: "fr"

使用英式英语对 media_player.floor 设备实体进行播报:

action: tts.google_translate_say
data:
  entity_id: media_player.floor
  message: "May the force be with you."
  language: "en-uk"
action: tts.google_translate_say
data:
  entity_id: media_player.floor
  message: "May the force be with you."
  language: "en"
  options:
    tld: co.uk

使用模板:

action: tts.google_translate_say
data:
  message: "Temperature is {{states('sensor.temperature')}}."
  cache: false

有关在 Home Assistant 中使用文字转语音以及所有可用选项的更多信息,请参阅 TTS 文档