Text-to-speech service using Google’s Cloud Text-to-Speech API
GoogleTTSService
: Websocket-based streaming serviceGoogleHttpTTSService
: HTTP-based streaming serviceGoogleTTSService
offers the lowest latency and is the recommended option.GOOGLE_APPLICATION_CREDENTIALS
(path to service account JSON)TextFrame
- Text content to synthesize into speechTTSSpeakFrame
- Text that should be spoken immediatelyTTSUpdateSettingsFrame
- Runtime configuration updatesLLMFullResponseStartFrame
/ LLMFullResponseEndFrame
- LLM response boundariesTTSStartedFrame
- Signals start of synthesisTTSAudioRawFrame
- Generated audio data (PCM format)TTSStoppedFrame
- Signals completion of synthesisErrorFrame
- Google Cloud API or processing errorsFeature | GoogleTTSService (Streaming) | GoogleHttpTTSService (HTTP) |
---|---|---|
Streaming | ✅ Real-time chunks | ❌ Single audio block |
Latency | 🚀 Ultra-low | 📈 Higher |
Voice Support | Chirp 3 HD, Journey only | All Google voices |
SSML Support | ❌ Plain text only | ✅ Full SSML |
Customization | ⚠️ Basic | ✅ Extensive |
View All Supported Languages
Language Code | Description | Service Code |
---|---|---|
Language.AF | Afrikaans | af-ZA |
Language.AR | Arabic | ar-XA |
Language.BN | Bengali | bn-IN |
Language.BG | Bulgarian | bg-BG |
Language.CA | Catalan | ca-ES |
Language.ZH | Chinese (Mandarin) | cmn-CN |
Language.ZH_TW | Chinese (Taiwan) | cmn-TW |
Language.ZH_HK | Chinese (Hong Kong) | yue-HK |
Language.CS | Czech | cs-CZ |
Language.DA | Danish | da-DK |
Language.NL | Dutch | nl-NL |
Language.NL_BE | Dutch (Belgium) | nl-BE |
Language.EN | English (US) | en-US |
Language.EN_AU | English (Australia) | en-AU |
Language.EN_GB | English (UK) | en-GB |
Language.EN_IN | English (India) | en-IN |
Language.ET | Estonian | et-EE |
Language.FIL | Filipino | fil-PH |
Language.FI | Finnish | fi-FI |
Language.FR | French | fr-FR |
Language.FR_CA | French (Canada) | fr-CA |
Language.GL | Galician | gl-ES |
Language.DE | German | de-DE |
Language.EL | Greek | el-GR |
Language.GU | Gujarati | gu-IN |
Language.HE | Hebrew | he-IL |
Language.HI | Hindi | hi-IN |
Language.HU | Hungarian | hu-HU |
Language.IS | Icelandic | is-IS |
Language.ID | Indonesian | id-ID |
Language.IT | Italian | it-IT |
Language.JA | Japanese | ja-JP |
Language.KN | Kannada | kn-IN |
Language.KO | Korean | ko-KR |
Language.LV | Latvian | lv-LV |
Language.LT | Lithuanian | lt-LT |
Language.MS | Malay | ms-MY |
Language.ML | Malayalam | ml-IN |
Language.MR | Marathi | mr-IN |
Language.NO | Norwegian | nb-NO |
Language.PA | Punjabi | pa-IN |
Language.PL | Polish | pl-PL |
Language.PT | Portuguese | pt-PT |
Language.PT_BR | Portuguese (Brazil) | pt-BR |
Language.RO | Romanian | ro-RO |
Language.RU | Russian | ru-RU |
Language.SR | Serbian | sr-RS |
Language.SK | Slovak | sk-SK |
Language.ES | Spanish | es-ES |
Language.ES_US | Spanish (US) | es-US |
Language.SV | Swedish | sv-SE |
Language.TA | Tamil | ta-IN |
Language.TE | Telugu | te-IN |
Language.TH | Thai | th-TH |
Language.TR | Turkish | tr-TR |
Language.UK | Ukrainian | uk-UA |
Language.VI | Vietnamese | vi-VN |
Language.EN_US
- English (US)Language.EN_GB
- English (UK)Language.FR
- FrenchLanguage.DE
- GermanLanguage.ES
- SpanishLanguage.IT
- ItalianGoogleTTSService
and use it in a pipeline:
GoogleHttpTTSService
for more customization options:
TTSUpdateSettingsFrame
: