diff --git a/website/docs/agents-sdk/building-agents/voice-language.mdx b/website/docs/agents-sdk/building-agents/voice-language.mdx index 2d01ff399..7db71691a 100644 --- a/website/docs/agents-sdk/building-agents/voice-language.mdx +++ b/website/docs/agents-sdk/building-agents/voice-language.mdx @@ -61,13 +61,13 @@ self.add_language("English", "en-US", "elevenlabs.josh:eleven_turbo_v2_5") | Provider | Engine Code | Example Voice | Reference | |----------|-------------|---------------|-----------| -| Amazon Polly | `amazon` | `amazon.Joanna-Neural` | [Voice IDs](https://developer.signalwire.com/voice/tts/amazon-polly#voice-ids) | -| Cartesia | `cartesia` | `cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab` | [Voice IDs](https://developer.signalwire.com/voice/tts/cartesia#voice-ids) | -| Deepgram | `deepgram` | `deepgram.aura-asteria-en` | [Voice IDs](https://developer.signalwire.com/voice/tts/deepgram#voice-ids) | -| ElevenLabs | `elevenlabs` | `elevenlabs.thomas` | [Voice IDs](https://developer.signalwire.com/voice/tts/elevenlabs#voice-ids) | -| Google Cloud | `gcloud` | `gcloud.en-US-Casual-K` | [Voice IDs](https://developer.signalwire.com/voice/tts/gcloud#voice-ids) | -| Microsoft Azure | `azure` | `azure.en-US-AvaNeural` | [Voice IDs](https://developer.signalwire.com/voice/tts/azure#voice-ids) | -| OpenAI | `openai` | `openai.alloy` | [Voice IDs](https://developer.signalwire.com/voice/tts/openai#voice-ids) | +| Amazon Polly | `amazon` | `amazon.Joanna-Neural` | [Voice IDs](https://developer.signalwire.com/voice/tts/amazon-polly#usage) | +| Cartesia | `cartesia` | `cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab` | [Voice IDs](https://developer.signalwire.com/voice/tts/cartesia#usage) | +| Deepgram | `deepgram` | `deepgram.aura-asteria-en` | [Voice IDs](https://developer.signalwire.com/voice/tts/deepgram#usage) | +| ElevenLabs | `elevenlabs` | `elevenlabs.thomas` | [Voice IDs](https://developer.signalwire.com/voice/tts/elevenlabs#usage) | +| Google Cloud | `gcloud` | `gcloud.en-US-Casual-K` | [Voice IDs](https://developer.signalwire.com/voice/tts/gcloud#usage) | +| Microsoft Azure | `azure` | `azure.en-US-AvaNeural` | [Voice IDs](https://developer.signalwire.com/voice/tts/azure#usage) | +| OpenAI | `openai` | `openai.alloy` | [Voice IDs](https://developer.signalwire.com/voice/tts/openai#usage) | | Rime | `rime` | `rime.luna:arcana` | [Voice IDs](https://developer.signalwire.com/voice/tts/rime#voices) | ### Filler Phrases diff --git a/website/docs/main/home/calling/voice/tts/_azure-voices.mdx b/website/docs/main/home/calling/voice/tts/_azure-voices.mdx deleted file mode 100644 index bb794c4a5..000000000 --- a/website/docs/main/home/calling/voice/tts/_azure-voices.mdx +++ /dev/null @@ -1,522 +0,0 @@ -| Voice codes | -| :------------------------------------ | -| `af-ZA-AdriNeural` | -| `af-ZA-WillemNeural` | -| `am-ET-MekdesNeural` | -| `am-ET-AmehaNeural` | -| `ar-AE-FatimaNeural` | -| `ar-AE-HamdanNeural` | -| `ar-BH-LailaNeural` | -| `ar-BH-AliNeural` | -| `ar-DZ-AminaNeural` | -| `ar-DZ-IsmaelNeural` | -| `ar-EG-SalmaNeural` | -| `ar-EG-ShakirNeural` | -| `ar-IQ-RanaNeural` | -| `ar-IQ-BasselNeural` | -| `ar-JO-SanaNeural` | -| `ar-JO-TaimNeural` | -| `ar-KW-NouraNeural` | -| `ar-KW-FahedNeural` | -| `ar-LB-LaylaNeural` | -| `ar-LB-RamiNeural` | -| `ar-LY-ImanNeural` | -| `ar-LY-OmarNeural` | -| `ar-MA-MounaNeural` | -| `ar-MA-JamalNeural` | -| `ar-OM-AyshaNeural` | -| `ar-OM-AbdullahNeural` | -| `ar-QA-AmalNeural` | -| `ar-QA-MoazNeural` | -| `ar-SA-ZariyahNeural` | -| `ar-SA-HamedNeural` | -| `ar-SY-AmanyNeural` | -| `ar-SY-LaithNeural` | -| `ar-TN-ReemNeural` | -| `ar-TN-HediNeural` | -| `ar-YE-MaryamNeural` | -| `ar-YE-SalehNeural` | -| `as-IN-YashicaNeural` | -| `as-IN-PriyomNeural` | -| `az-AZ-BanuNeural` | -| `az-AZ-BabekNeural` | -| `bg-BG-KalinaNeural` | -| `bg-BG-BorislavNeural` | -| `bn-BD-NabanitaNeural` | -| `bn-BD-PradeepNeural` | -| `bn-IN-TanishaaNeural` | -| `bn-IN-BashkarNeural` | -| `bs-BA-VesnaNeural` | -| `bs-BA-GoranNeural` | -| `ca-ES-JoanaNeural` | -| `ca-ES-EnricNeural` | -| `ca-ES-AlbaNeural` | -| `cs-CZ-VlastaNeural` | -| `cs-CZ-AntoninNeural` | -| `cy-GB-NiaNeural` | -| `cy-GB-AledNeural` | -| `da-DK-ChristelNeural` | -| `da-DK-JeppeNeural` | -| `de-AT-IngridNeural` | -| `de-AT-JonasNeural` | -| `de-CH-LeniNeural` | -| `de-CH-JanNeural` | -| `de-DE-KatjaNeural` | -| `de-DE-ConradNeural` | -| `de-DE-SeraphinaMultilingualNeural` | -| `de-DE-FlorianMultilingualNeural` | -| `de-DE-AmalaNeural` | -| `de-DE-BerndNeural` | -| `de-DE-ChristophNeural` | -| `de-DE-ElkeNeural` | -| `de-DE-GiselaNeural` | -| `de-DE-KasperNeural` | -| `de-DE-KillianNeural` | -| `de-DE-KlarissaNeural` | -| `de-DE-KlausNeural` | -| `de-DE-LouisaNeural` | -| `de-DE-MajaNeural` | -| `de-DE-RalfNeural` | -| `de-DE-TanjaNeural` | -| `el-GR-AthinaNeural` | -| `el-GR-NestorasNeural` | -| `en-AU-NatashaNeural` | -| `en-AU-WilliamNeural` | -| `en-AU-AnnetteNeural` | -| `en-AU-CarlyNeural` | -| `en-AU-DarrenNeural` | -| `en-AU-DuncanNeural` | -| `en-AU-ElsieNeural` | -| `en-AU-FreyaNeural` | -| `en-AU-JoanneNeural` | -| `en-AU-KenNeural` | -| `en-AU-KimNeural` | -| `en-AU-NeilNeural` | -| `en-AU-TimNeural` | -| `en-AU-TinaNeural` | -| `en-CA-ClaraNeural` | -| `en-CA-LiamNeural` | -| `en-GB-SoniaNeural` | -| `en-GB-RyanNeural` | -| `en-GB-LibbyNeural` | -| `en-GB-AdaMultilingualNeural` | -| `en-GB-OllieMultilingualNeural` | -| `en-GB-AbbiNeural` | -| `en-GB-AlfieNeural` | -| `en-GB-BellaNeural` | -| `en-GB-ElliotNeural` | -| `en-GB-EthanNeural` | -| `en-GB-HollieNeural` | -| `en-GB-MaisieNeural` | -| `en-GB-NoahNeural` | -| `en-GB-OliverNeural` | -| `en-GB-OliviaNeural` | -| `en-GB-ThomasNeural` | -| `en-GB-MiaNeural` | -| `en-HK-YanNeural` | -| `en-HK-SamNeural` | -| `en-IE-EmilyNeural` | -| `en-IE-ConnorNeural` | -| `en-IN-AaravNeural` | -| `en-IN-AashiNeural` | -| `en-IN-AnanyaNeural` | -| `en-IN-KavyaNeural` | -| `en-IN-KunalNeural` | -| `en-IN-NeerjaNeural` | -| `en-IN-PrabhatNeural` | -| `en-IN-RehaanNeural` | -| `en-KE-AsiliaNeural` | -| `en-KE-ChilembaNeural` | -| `en-NG-EzinneNeural` | -| `en-NG-AbeoNeural` | -| `en-NZ-MollyNeural` | -| `en-NZ-MitchellNeural` | -| `en-PH-RosaNeural` | -| `en-PH-JamesNeural` | -| `en-SG-LunaNeural` | -| `en-SG-WayneNeural` | -| `en-TZ-ImaniNeural` | -| `en-TZ-ElimuNeural` | -| `en-US-AvaMultilingualNeural` | -| `en-US-AndrewMultilingualNeural` | -| `en-US-EmmaMultilingualNeural` | -| `en-US-BrianMultilingualNeural` | -| `en-US-AvaNeural` | -| `en-US-AndrewNeural` | -| `en-US-EmmaNeural` | -| `en-US-BrianNeural` | -| `en-US-JennyNeural` | -| `en-US-GuyNeural` | -| `en-US-AriaNeural` | -| `en-US-DavisNeural` | -| `en-US-JaneNeural` | -| `en-US-JasonNeural` | -| `en-US-KaiNeural` | -| `en-US-LunaNeural` | -| `en-US-SaraNeural` | -| `en-US-TonyNeural` | -| `en-US-NancyNeural` | -| `en-US-CoraMultilingualNeural` | -| `en-US-ChristopherMultilingualNeural` | -| `en-US-BrandonMultilingualNeural` | -| `en-US-AmberNeural` | -| `en-US-AnaNeural` | -| `en-US-AshleyNeural` | -| `en-US-BrandonNeural` | -| `en-US-ChristopherNeural` | -| `en-US-CoraNeural` | -| `en-US-ElizabethNeural` | -| `en-US-EricNeural` | -| `en-US-JacobNeural` | -| `en-US-JennyMultilingualNeural` | -| `en-US-MichelleNeural` | -| `en-US-MonicaNeural` | -| `en-US-RogerNeural` | -| `en-US-RyanMultilingualNeural` | -| `en-US-SteffanNeural` | -| `en-ZA-LeahNeural` | -| `en-ZA-LukeNeural` | -| `es-AR-ElenaNeural` | -| `es-AR-TomasNeural` | -| `es-BO-SofiaNeural` | -| `es-BO-MarceloNeural` | -| `es-CL-CatalinaNeural` | -| `es-CL-LorenzoNeural` | -| `es-CO-SalomeNeural` | -| `es-CO-GonzaloNeural` | -| `es-CR-MariaNeural` | -| `es-CR-JuanNeural` | -| `es-CU-BelkysNeural` | -| `es-CU-ManuelNeural` | -| `es-DO-RamonaNeural` | -| `es-DO-EmilioNeural` | -| `es-EC-AndreaNeural` | -| `es-EC-LuisNeural` | -| `es-ES-ElviraNeural` | -| `es-ES-AlvaroNeural` | -| `es-ES-ArabellaMultilingualNeural` | -| `es-ES-IsidoraMultilingualNeural` | -| `es-ES-TristanMultilingualNeural` | -| `es-ES-XimenaMultilingualNeural` | -| `es-ES-AbrilNeural` | -| `es-ES-ArnauNeural` | -| `es-ES-DarioNeural` | -| `es-ES-EliasNeural` | -| `es-ES-EstrellaNeural` | -| `es-ES-IreneNeural` | -| `es-ES-LaiaNeural` | -| `es-ES-LiaNeural` | -| `es-ES-NilNeural` | -| `es-ES-SaulNeural` | -| `es-ES-TeoNeural` | -| `es-ES-TrianaNeural` | -| `es-ES-VeraNeural` | -| `es-ES-XimenaNeural` | -| `es-GQ-TeresaNeural` | -| `es-GQ-JavierNeural` | -| `es-GT-MartaNeural` | -| `es-GT-AndresNeural` | -| `es-HN-KarlaNeural` | -| `es-HN-CarlosNeural` | -| `es-MX-DaliaNeural` | -| `es-MX-JorgeNeural` | -| `es-MX-BeatrizNeural` | -| `es-MX-CandelaNeural` | -| `es-MX-CarlotaNeural` | -| `es-MX-CecilioNeural` | -| `es-MX-GerardoNeural` | -| `es-MX-LarissaNeural` | -| `es-MX-LibertoNeural` | -| `es-MX-LucianoNeural` | -| `es-MX-MarinaNeural` | -| `es-MX-NuriaNeural` | -| `es-MX-PelayoNeural` | -| `es-MX-RenataNeural` | -| `es-MX-YagoNeural` | -| `es-NI-YolandaNeural` | -| `es-NI-FedericoNeural` | -| `es-PA-MargaritaNeural` | -| `es-PA-RobertoNeural` | -| `es-PE-CamilaNeural` | -| `es-PE-AlexNeural` | -| `es-PR-KarinaNeural` | -| `es-PR-VictorNeural` | -| `es-PY-TaniaNeural` | -| `es-PY-MarioNeural` | -| `es-SV-LorenaNeural` | -| `es-SV-RodrigoNeural` | -| `es-US-PalomaNeural` | -| `es-US-AlonsoNeural` | -| `es-UY-ValentinaNeural` | -| `es-UY-MateoNeural` | -| `es-VE-PaolaNeural` | -| `es-VE-SebastianNeural` | -| `et-EE-AnuNeural` | -| `et-EE-KertNeural` | -| `eu-ES-AinhoaNeural` | -| `eu-ES-AnderNeural` | -| `fa-IR-DilaraNeural` | -| `fa-IR-FaridNeural` | -| `fi-FI-SelmaNeural` | -| `fi-FI-HarriNeural` | -| `fi-FI-NooraNeural` | -| `fil-PH-BlessicaNeural` | -| `fil-PH-AngeloNeural` | -| `fr-BE-CharlineNeural` | -| `fr-BE-GerardNeural` | -| `fr-CA-SylvieNeural` | -| `fr-CA-JeanNeural` | -| `fr-CA-AntoineNeural` | -| `fr-CA-ThierryNeural` | -| `fr-CH-ArianeNeural` | -| `fr-CH-FabriceNeural` | -| `fr-FR-DeniseNeural` | -| `fr-FR-HenriNeural` | -| `fr-FR-VivienneMultilingualNeural` | -| `fr-FR-RemyMultilingualNeural` | -| `fr-FR-LucienMultilingualNeural` | -| `fr-FR-AlainNeural` | -| `fr-FR-BrigitteNeural` | -| `fr-FR-CelesteNeural` | -| `fr-FR-ClaudeNeural` | -| `fr-FR-CoralieNeural` | -| `fr-FR-EloiseNeural` | -| `fr-FR-JacquelineNeural` | -| `fr-FR-JeromeNeural` | -| `fr-FR-JosephineNeural` | -| `fr-FR-MauriceNeural` | -| `fr-FR-YvesNeural` | -| `fr-FR-YvetteNeural` | -| `ga-IE-OrlaNeural` | -| `ga-IE-ColmNeural` | -| `gl-ES-SabelaNeural` | -| `gl-ES-RoiNeural` | -| `gu-IN-DhwaniNeural` | -| `gu-IN-NiranjanNeural` | -| `he-IL-HilaNeural` | -| `he-IL-AvriNeural` | -| `hi-IN-AaravNeural` | -| `hi-IN-AnanyaNeural` | -| `hi-IN-KavyaNeural` | -| `hi-IN-KunalNeural` | -| `hi-IN-RehaanNeural` | -| `hi-IN-SwaraNeural` | -| `hi-IN-MadhurNeural` | -| `hr-HR-GabrijelaNeural` | -| `hr-HR-SreckoNeural` | -| `hu-HU-NoemiNeural` | -| `hu-HU-TamasNeural` | -| `hy-AM-AnahitNeural` | -| `hy-AM-HaykNeural` | -| `id-ID-GadisNeural` | -| `id-ID-ArdiNeural` | -| `is-IS-GudrunNeural` | -| `is-IS-GunnarNeural` | -| `it-IT-ElsaNeural` | -| `it-IT-IsabellaNeural` | -| `it-IT-DiegoNeural` | -| `it-IT-AlessioMultilingualNeural` | -| `it-IT-IsabellaMultilingualNeural` | -| `it-IT-GiuseppeMultilingualNeural` | -| `it-IT-MarcelloMultilingualNeural` | -| `it-IT-BenignoNeural` | -| `it-IT-CalimeroNeural` | -| `it-IT-CataldoNeural` | -| `it-IT-FabiolaNeural` | -| `it-IT-FiammaNeural` | -| `it-IT-GianniNeural` | -| `it-IT-GiuseppeNeural` | -| `it-IT-ImeldaNeural` | -| `it-IT-IrmaNeural` | -| `it-IT-LisandroNeural` | -| `it-IT-PalmiraNeural` | -| `it-IT-PierinaNeural` | -| `it-IT-RinaldoNeural` | -| `iu-Cans-CA-SiqiniqNeural` | -| `iu-Cans-CA-TaqqiqNeural` | -| `iu-Latn-CA-SiqiniqNeural` | -| `iu-Latn-CA-TaqqiqNeural` | -| `ja-JP-NanamiNeural` | -| `ja-JP-KeitaNeural` | -| `ja-JP-AoiNeural` | -| `ja-JP-DaichiNeural` | -| `ja-JP-MayuNeural` | -| `ja-JP-NaokiNeural` | -| `ja-JP-ShioriNeural` | -| `jv-ID-SitiNeural` | -| `jv-ID-DimasNeural` | -| `ka-GE-EkaNeural` | -| `ka-GE-GiorgiNeural` | -| `kk-KZ-AigulNeural` | -| `kk-KZ-DauletNeural` | -| `km-KH-SreymomNeural` | -| `km-KH-PisethNeural` | -| `kn-IN-SapnaNeural` | -| `kn-IN-GaganNeural` | -| `ko-KR-SunHiNeural` | -| `ko-KR-InJoonNeural` | -| `ko-KR-HyunsuMultilingualNeural` | -| `ko-KR-BongJinNeural` | -| `ko-KR-GookMinNeural` | -| `ko-KR-HyunsuNeural` | -| `ko-KR-JiMinNeural` | -| `ko-KR-SeoHyeonNeural` | -| `ko-KR-SoonBokNeural` | -| `ko-KR-YuJinNeural` | -| `lo-LA-KeomanyNeural` | -| `lo-LA-ChanthavongNeural` | -| `lt-LT-OnaNeural` | -| `lt-LT-LeonasNeural` | -| `lv-LV-EveritaNeural` | -| `lv-LV-NilsNeural` | -| `mk-MK-MarijaNeural` | -| `mk-MK-AleksandarNeural` | -| `ml-IN-SobhanaNeural` | -| `ml-IN-MidhunNeural` | -| `mn-MN-YesuiNeural` | -| `mn-MN-BataaNeural` | -| `mr-IN-AarohiNeural` | -| `mr-IN-ManoharNeural` | -| `ms-MY-YasminNeural` | -| `ms-MY-OsmanNeural` | -| `mt-MT-GraceNeural` | -| `mt-MT-JosephNeural` | -| `my-MM-NilarNeural` | -| `my-MM-ThihaNeural` | -| `nb-NO-PernilleNeural` | -| `nb-NO-FinnNeural` | -| `nb-NO-IselinNeural` | -| `ne-NP-HemkalaNeural` | -| `ne-NP-SagarNeural` | -| `nl-BE-DenaNeural` | -| `nl-BE-ArnaudNeural` | -| `nl-NL-FennaNeural` | -| `nl-NL-MaartenNeural` | -| `nl-NL-ColetteNeural` | -| `or-IN-SubhasiniNeural` | -| `or-IN-SukantNeural` | -| `pa-IN-OjasNeural` | -| `pa-IN-VaaniNeural` | -| `pl-PL-AgnieszkaNeural` | -| `pl-PL-MarekNeural` | -| `pl-PL-ZofiaNeural` | -| `ps-AF-LatifaNeural` | -| `ps-AF-GulNawazNeural` | -| `pt-BR-FranciscaNeural` | -| `pt-BR-AntonioNeural` | -| `pt-BR-MacerioMultilingualNeural` | -| `pt-BR-ThalitaMultilingualNeural` | -| `pt-BR-BrendaNeural` | -| `pt-BR-DonatoNeural` | -| `pt-BR-ElzaNeural` | -| `pt-BR-FabioNeural` | -| `pt-BR-GiovannaNeural` | -| `pt-BR-HumbertoNeural` | -| `pt-BR-JulioNeural` | -| `pt-BR-LeilaNeural` | -| `pt-BR-LeticiaNeural` | -| `pt-BR-ManuelaNeural` | -| `pt-BR-NicolauNeural` | -| `pt-BR-ThalitaNeural` | -| `pt-BR-ValerioNeural` | -| `pt-BR-YaraNeural` | -| `pt-PT-RaquelNeural` | -| `pt-PT-DuarteNeural` | -| `pt-PT-FernandaNeural` | -| `ro-RO-AlinaNeural` | -| `ro-RO-EmilNeural` | -| `ru-RU-SvetlanaNeural` | -| `ru-RU-DmitryNeural` | -| `ru-RU-DariyaNeural` | -| `si-LK-ThiliniNeural` | -| `si-LK-SameeraNeural` | -| `sk-SK-ViktoriaNeural` | -| `sk-SK-LukasNeural` | -| `sl-SI-PetraNeural` | -| `sl-SI-RokNeural` | -| `so-SO-UbaxNeural` | -| `so-SO-MuuseNeural` | -| `sq-AL-AnilaNeural` | -| `sq-AL-IlirNeural` | -| `sr-Latn-RS-NicholasNeural` | -| `sr-Latn-RS-SophieNeural` | -| `sr-RS-SophieNeural` | -| `sr-RS-NicholasNeural` | -| `su-ID-TutiNeural` | -| `su-ID-JajangNeural` | -| `sv-SE-SofieNeural` | -| `sv-SE-MattiasNeural` | -| `sv-SE-HilleviNeural` | -| `sw-KE-ZuriNeural` | -| `sw-KE-RafikiNeural` | -| `sw-TZ-RehemaNeural` | -| `sw-TZ-DaudiNeural` | -| `ta-IN-PallaviNeural` | -| `ta-IN-ValluvarNeural` | -| `ta-LK-SaranyaNeural` | -| `ta-LK-KumarNeural` | -| `ta-MY-KaniNeural` | -| `ta-MY-SuryaNeural` | -| `ta-SG-VenbaNeural` | -| `ta-SG-AnbuNeural` | -| `te-IN-ShrutiNeural` | -| `te-IN-MohanNeural` | -| `th-TH-PremwadeeNeural` | -| `th-TH-NiwatNeural` | -| `th-TH-AcharaNeural` | -| `tr-TR-EmelNeural` | -| `tr-TR-AhmetNeural` | -| `uk-UA-PolinaNeural` | -| `uk-UA-OstapNeural` | -| `ur-IN-GulNeural` | -| `ur-IN-SalmanNeural` | -| `ur-PK-UzmaNeural` | -| `ur-PK-AsadNeural` | -| `uz-UZ-MadinaNeural` | -| `uz-UZ-SardorNeural` | -| `vi-VN-HoaiMyNeural` | -| `vi-VN-NamMinhNeural` | -| `wuu-CN-XiaotongNeural` | -| `wuu-CN-YunzheNeural` | -| `yue-CN-XiaoMinNeural` | -| `yue-CN-YunSongNeural` | -| `zh-CN-XiaoxiaoNeural` | -| `zh-CN-YunxiNeural` | -| `zh-CN-YunjianNeural` | -| `zh-CN-XiaoyiNeural` | -| `zh-CN-YunyangNeural` | -| `zh-CN-XiaochenNeural` | -| `zh-CN-XiaochenMultilingualNeural` | -| `zh-CN-XiaohanNeural` | -| `zh-CN-XiaomengNeural` | -| `zh-CN-XiaomoNeural` | -| `zh-CN-XiaoqiuNeural` | -| `zh-CN-XiaorouNeural` | -| `zh-CN-XiaoruiNeural` | -| `zh-CN-XiaoshuangNeural` | -| `zh-CN-XiaoxiaoDialectsNeural` | -| `zh-CN-XiaoxiaoMultilingualNeural` | -| `zh-CN-XiaoyanNeural` | -| `zh-CN-XiaoyouNeural` | -| `zh-CN-XiaoyuMultilingualNeural` | -| `zh-CN-XiaozhenNeural` | -| `zh-CN-YunfengNeural` | -| `zh-CN-YunhaoNeural` | -| `zh-CN-YunjieNeural` | -| `zh-CN-YunxiaNeural` | -| `zh-CN-YunyeNeural` | -| `zh-CN-YunyiMultilingualNeural` | -| `zh-CN-YunzeNeural` | -| `zh-CN-henan-YundengNeural` | -| `zh-CN-liaoning-XiaobeiNeural` | -| `zh-CN-shaanxi-XiaoniNeural` | -| `zh-CN-shandong-YunxiangNeural` | -| `zh-CN-sichuan-YunxiNeural` | -| `zh-HK-HiuMaanNeural` | -| `zh-HK-WanLungNeural` | -| `zh-HK-HiuGaaiNeural` | -| `zh-TW-HsiaoChenNeural` | -| `zh-TW-YunJheNeural` | -| `zh-TW-HsiaoYuNeural` | -| `zu-ZA-ThandoNeural` | -| `zu-ZA-ThembaNeural` | \ No newline at end of file diff --git a/website/docs/main/home/calling/voice/tts/azure.mdx b/website/docs/main/home/calling/voice/tts/azure.mdx index 9a9bad39c..0ebaddc74 100644 --- a/website/docs/main/home/calling/voice/tts/azure.mdx +++ b/website/docs/main/home/calling/voice/tts/azure.mdx @@ -4,26 +4,118 @@ description: Learn how to use Azure TTS voices on the SignalWire platform. slug: /voice/tts/azure --- -import AzureVoices from './_azure-voices.mdx'; - # Microsoft Azure Microsoft's Azure platform offers an impressive array of high-quality, multilingual voices in its Neural model. -## Languages +## Voices {#voices} + + + + Browse the complete list of Azure Neural voices in Microsoft's official documentation. + + + Listen to audio samples and preview voices in Azure's interactive voice gallery. + + + +## Usage {#usage} + +Azure voice IDs conform to the following format: + +``` +azure. +``` + +Where `` is the full Azure voice code (e.g., `en-US-AvaNeural`). + +**Examples:** +``` +azure.en-US-AvaNeural +azure.en-GB-SoniaNeural +azure.de-DE-KatjaNeural +azure.es-ES-ElviraNeural +``` + +**Note:** Azure voice IDs already include language information, so no additional language parameter is needed. + +## Languages {#languages} Azure Neural voices are interchangeably compatible with all supported languages. Rather than setting language with the language `code`, simply provide input text in the desired language. -Consult the Azure +Consult the Azure [supported languages resource](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=tts) for an up-to-date list of supported languages. -## Voice IDs +## SSML support {#ssml} + +Azure voices support [Speech Synthesis Markup Language (SSML)](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-synthesis-markup) for advanced control over: + +- Prosody (pitch, rate, volume) +- Emphasis and breaks +- Phonetic pronunciation +- Multi-language content + +Consult Azure's [SSML documentation](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-synthesis-markup) for detailed usage instructions. + +--- -
+## Examples {#examples} - +Learn how to use Azure voices on the SignalWire platform. -
+ + +Use the +[**`languages`**](/swml/methods/ai/languages#use-voice-strings) +SWML method to set one or more voices for an [AI agent](/swml/methods/ai). +```yaml +version: 1.0.0 +sections: + main: + - ai: + prompt: + text: Have an open-ended conversation about flowers. + languages: + - name: English + code: en-US + voice: azure.en-US-AvaNeural +``` +Alternatively, use the [**`say_voice`** parameter](/swml/methods/play#parameters) +of the [**`play`**](/swml/methods/play) +SWML method to select a voice for basic TTS. +```yaml +version: 1.0.0 +sections: + main: + - set: + say_voice: "azure.en-US-AvaNeural" + - play: "say:Greetings. This is the Ava voice from Microsoft Azure's Neural text-to-speech model." +``` + + +```javascript +// This example uses the Node.js SDK for SignalWire's RELAY Realtime API. +const playback = await call.playTTS({ + text: "Greetings. This is the Ava voice from Microsoft Azure's Neural text-to-speech model.", + voice: "azure.en-US-AvaNeural", +}); +await playback.ended(); +``` + + +Azure voices are not yet supported in Call Flow Builder. + + +```xml + + + + Greetings. This is the Ava voice from Microsoft Azure's Neural text-to-speech model. + + +``` + + diff --git a/website/docs/main/home/calling/voice/tts/cartesia.mdx b/website/docs/main/home/calling/voice/tts/cartesia.mdx index 25f980ea0..464a01a0a 100644 --- a/website/docs/main/home/calling/voice/tts/cartesia.mdx +++ b/website/docs/main/home/calling/voice/tts/cartesia.mdx @@ -9,14 +9,34 @@ import CodeBlock from '@theme/CodeBlock'; # Cartesia Cartesia offers a wide selection of fully multilingual voices with very low latency. +[Create a Cartesia account](https://play.cartesia.ai) to browse and test voices in the Cartesia Playground. -Consult [Cartesia's Text-to-Speech documentation](https://docs.cartesia.ai/build-with-cartesia/models/tts) -for more information and audio samples for available voices. -[Create a Cartesia Account](https://play.cartesia.ai) to browse and test voices in the Cartesia Playground. +## Models {#models} -## Voice IDs +Cartesia provides multiple generations of its Sonic TTS model: -Copy the voice ID from the below table: +| Model | Description | +|-------|-------------| +| `sonic-3` | **Default.** Latest model with enhanced naturalness | +| `sonic-2` | Second-generation model with improved quality | +| `sonic-turbo` | Optimized for ultra-low latency | +| `sonic` | The first version of Sonic, optimized for accuracy and low latency. | + + +All Cartesia voices can be used with any model. + + + + Learn about Cartesia's latest Sonic 3 model. + + + Documentation for older Sonic model versions. + + + +## Voices {#voices} + +Copy the voice ID from the table below:
@@ -153,14 +173,49 @@ Copy the voice ID from the below table: | British Customer Support Lady | a01c369f-6d2d-4185-bc20-b32c225eab70 | | Chinese Woman Narrator | d4d4b115-57a0-48ea-9a1a-9898966c2966 | -


+ + +
+
+ +For more information, refer to Cartesia's guide to +[Choosing a Voice](https://docs.cartesia.ai/build-with-cartesia/capability-guides/choosing-a-voice). + +## Usage {#usage} + +Cartesia voice IDs conform to the following format: + +``` +cartesia.: +``` + +**Parameters:** +- `voice_id` (required): The UUID voice identifier from the [Voices](#voices) table +- `model` (optional): One of the Sonic models listed above (default: `sonic-3`) + +**Examples:** +``` +cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab +cartesia.694f9389-aac1-45b6-b726-9d9369183238:sonic-3 +cartesia.829ccd10-f8b3-43cd-b8a0-4aeaa81f3b30:sonic-turbo +``` + +## Languages {#languages} + +Cartesia voices are fully multilingual when used with `sonic-multilingual`, `sonic-2`, `sonic-3`, or `sonic-3` models. +The multilingual models automatically adapt to the input text language. + +Supported languages include: English, Spanish, French, German, Italian, Portuguese, Dutch, Polish, Russian, Chinese, Japanese, Korean, Hindi, Turkish, Swedish, and many more. -Prepend `cartesia.` and the string is ready for use. -For example: `cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab` +For the complete list, refer to Cartesia's +[Sonic 3 language support](https://docs.cartesia.ai/build-with-cartesia/tts-models/latest#language-support) +and +[Sonic 2 language support](https://docs.cartesia.ai/build-with-cartesia/tts-models/older-models#sonic-2-language-support) +references. --- -## Examples +## Examples {#examples} See how to use Cartesia voices on the SignalWire platform. @@ -204,7 +259,7 @@ await playback.ended(); ``` -OpenAI voices are not yet supported in Call Flow Builder. +Cartesia voices are not yet supported in Call Flow Builder. ```xml diff --git a/website/docs/main/home/calling/voice/tts/deepgram.mdx b/website/docs/main/home/calling/voice/tts/deepgram.mdx index 0365e20ed..f2c1310dc 100644 --- a/website/docs/main/home/calling/voice/tts/deepgram.mdx +++ b/website/docs/main/home/calling/voice/tts/deepgram.mdx @@ -6,25 +6,67 @@ slug: /voice/tts/deepgram # Deepgram -Deepgram offers a range of **English-speaking** voices for its text-to-speech API, each designed to produce -natural-sounding speech output in an array of different accents and speaking styles. +Deepgram's Aura model offers a wide range of voices for its text-to-speech API, +each designed to produce natural-sounding speech output in an array of different accents and speaking styles. -Deepgram's voices are promised to have human-like tones, rhythm, and emotion, lower than 250 ms -latency, and are optimized for high-throughput applications. +Deepgram voices have human-like tones, rhythm, and emotion, +lower than 250 ms latency, +and are optimized for high-throughput applications. -Consult Deepgram's [TTS models guide](https://developers.deepgram.com/docs/tts-models) +Consult Deepgram's [TTS models guide](https://developers.deepgram.com/docs/tts-models) for more information and samples for supported voices. -## Voice IDs +## Models {#models} -Copy the voice ID from the **Values** column of Deepgram's -[Voice Selection](https://developers.deepgram.com/docs/tts-models) reference. -Prepend `deepgram.` and the string is ready for use. -For example: `deepgram.aura-athena-en` +Deepgram's Aura model provides ultra-low latency text-to-speech optimized for conversational AI: + +| Model | Description | +|-------|-------------| +| `aura` | **Default** - Low-latency conversational TTS with human-like tones | + +## Voices {#voices} + +Deepgram Aura voices are designed for natural-sounding English speech. Each voice follows the pattern `aura--en`. + +Popular voices include: +- `aura-asteria-en` - Clear, professional female voice +- `aura-luna-en` - Warm, conversational female voice +- `aura-stella-en` - Energetic, friendly female voice +- `aura-athena-en` - Authoritative female voice +- `aura-hera-en` - Mature, confident female voice +- `aura-orion-en` - Deep, authoritative male voice +- `aura-arcas-en` - Professional male voice +- `aura-perseus-en` - Friendly male voice +- `aura-angus-en` - Casual male voice +- `aura-orpheus-en` - Smooth, articulate male voice +- `aura-helios-en` - Energetic male voice +- `aura-zeus-en` - Powerful, commanding male voice + +For a complete list, consult Deepgram's [Voice Selection guide](https://developers.deepgram.com/docs/tts-models). + +## Usage {#usage} + +Deepgram voice IDs conform to the following format: + +``` +deepgram. +``` + +Where `` is the voice identifier from Deepgram's [Voice Selection](https://developers.deepgram.com/docs/tts-models) reference. + +Copy the voice ID from the **Values** column of Deepgram's Voice Selection reference, prepend `deepgram.`, and the string is ready for use. + +**Examples:** +``` +deepgram.aura-asteria-en +deepgram.aura-orion-en +deepgram.aura-luna-en +deepgram.aura-zeus-en +``` --- -## Examples +## Examples {#examples} Learn how to use Deepgram voices on the SignalWire platform. @@ -80,4 +122,4 @@ Deepgram voices are not yet supported in Call Flow Builder. ``` - \ No newline at end of file + diff --git a/website/docs/main/home/calling/voice/tts/elevenlabs.mdx b/website/docs/main/home/calling/voice/tts/elevenlabs.mdx index 5999f3bfc..a759362e8 100644 --- a/website/docs/main/home/calling/voice/tts/elevenlabs.mdx +++ b/website/docs/main/home/calling/voice/tts/elevenlabs.mdx @@ -7,30 +7,98 @@ slug: /voice/tts/elevenlabs # ElevenLabs ElevenLabs voices offer expressive, human-like pronunciation and an extensive list of supported languages. -SignalWire supports the following voices in the `Multilingual v2` model: +Every ElevenLabs [voice](#voices) can be used with all of the ElevenLabs [models](#models). -| Voices | Languages | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`rachel`**, **`clyde`**, **`domi`**, **`dave`**, **`fin`**, **`antoni`**, **`thomas`**, **`charlie`**, **`emily`**, **`elli`**, **`callum`**, **`patrick`**, **`harry`**, **`liam`**, **`dorothy`**, **`josh`**, **`arnold`**, **`charlotte`**, **`matilda`**, **`matthew`**, **`james`**, **`joseph`**, **`jeremy`**, **`michael`**, **`ethan`**, **`gigi`**, **`freya`**, **`grace`**, **`daniel`**, **`serena`**, **`adam`**, **`nicole`**, **`jessie`**, **`ryan`**, **`sam`**, **`glinda`**, **`giovanni`**, **`mimi`** | 🇺🇸 English (USA), 🇬🇧 English (UK), 🇦🇺 English (Australia), 🇨🇦 English (Canada), 🇯🇵 Japanese, 🇨🇳 Chinese, 🇩🇪 German, 🇮🇳 Hindi, 🇫🇷 French (France), 🇨🇦 French (Canada), 🇰🇷 Korean, 🇧🇷 Portuguese (Brazil), 🇵🇹 Portuguese (Portugal), 🇮🇹 Italian, 🇪🇸 Spanish (Spain), 🇲🇽 Spanish (Mexico), 🇮🇩 Indonesian, 🇳🇱 Dutch, 🇹🇷 Turkish, 🇵🇭 Filipino, 🇵🇱 Polish, 🇸🇪 Swedish, 🇧🇬 Bulgarian, 🇷🇴 Romanian, 🇸🇦 Arabic (Saudi Arabia), 🇦🇪 Arabic (UAE), 🇨🇿 Czech, 🇬🇷 Greek, 🇫🇮 Finnish, 🇭🇷 Croatian, 🇲🇾 Malay, 🇸🇰 Slovak, 🇩🇰 Danish, 🇮🇳 Tamil, 🇺🇦 Ukrainian, 🇷🇺 Russian | +## Models {#models} -## Languages +Consult ElevenLabs' documentation for an up-to-date list of available models and supported languages. -Multilingual v2 voices are designed to be interchangeably compatible with all supported languages. + + ElevenLabs' TTS API offers a range of audio models optimized for different use cases, quality levels, and performance requirements. + + +## Voices {#voices} + +You can use the **Name** and **ID** values for each voice in the below table interchangeably. + +| Name | ID | +|------------|----------| +| `Rachel` | `21m00Tcm4TlvDq8ikWAM` | +| `Drew` | `29vD33N1CtxCmqQRPOHJ` | +| `Clyde` | `2EiwWnXFnvU5JabPnv8n` | +| `Paul` | `5Q0t7uMcjvnagumLfvZi` | +| `Domi` | `AZnzlk1XvdvUeBnXmlld` | +| `Dave` | `CYw3kZ02Hs0563khs1Fj` | +| `Fin` | `D38z5RcWu1voky8WS1ja` | +| `Sarah` | `EXAVITQu4vr4xnSDxMaL` | +| `Antoni` | `ErXwobaYiN019PkySvjV` | +| `Thomas` | `GBv7mTt0atIp3Br8iCZE` | +| `Charlie` | `IKne3meq5aSn9XLyUdCD` | +| `George` | `JBFqnCBsd6RMkjVDRZzb` | +| `Emily` | `LcfcDJNUP1GQjkzn1xUU` | +| `Elli` | `MF3mGyEYCl7XYWbV9V6O` | +| `Callum` | `N2lVS1w4EtoT3dr4eOWO` | +| `Patrick` | `ODq5zmih8GrVes37Dizd` | +| `Harry` | `SOYHLrjzK2X1ezoPC6cr` | +| `Liam` | `TX3LPaxmHKxFdv7VOQHJ` | +| `Dorothy` | `ThT5KcBeYPX3keUQqHPh` | +| `Josh` | `TxGEqnHWrfWFTfGW9XjX` | +| `Arnold` | `VR6AewLTigWG4xSOukaG` | +| `Charlotte` | `XB0fDUnXU5powFXDhCwa` | +| `Alice` | `Xb7hH8MSUJpSbSDYk0k2` | +| `Matilda` | `XrExE9yKIg1WjnnlVkGX` | +| `James` | `ZQe5CZNOzWyzPSCn5a3c` | +| `Joseph` | `Zlb1dXrM653N07WRdFW3` | +| `Jeremy` | `bVMeCyTHy58xNoL34h3p` | +| `Michael` | `flq6f7yk4E4fJM5XTYuZ` | +| `Ethan` | `g5CIjZEefAph4nQFvHAz` | +| `Chris` | `iP95p4xoKVk53GoZ742B` | +| `Gigi` | `jBpfuIE2acCO8z3wKNLl` | +| `Freya` | `jsCqWAovK2LkecY7zXl4` | +| `Brian` | `nPczCjzI2devNBz1zQrb` | +| `Grace` | `oWAxZDx7w5VEj9dCyTzz` | +| `Daniel` | `onwK4e9ZLuTAKqWW03F9` | +| `Lily` | `pFZP5JQG7iQjIQuC4Bku` | +| `Serena` | `pMsXgVXv3BLzUgSXRplE` | +| `Adam` | `pNInz6obpgDQGcFmaJgB` | +| `Nicole` | `piTKgcLEGmPE4e6mEKli` | +| `Bill` | `pqHfZKP75CvOlQylNhV4` | +| `Jessie` | `t0jbNlBVZ17f02VDIeMI` | +| `Sam` | `yoZ06aMxZJJ28mfd3POQ` | +| `Glinda` | `z9fAnlkpzviPz146aGWa` | +| `Giovanni` | `zcAOhNBS3c14rBihAFp1` | +| `Mimi` | `zrHiDhphv9ZnVXBqCLjz` | + +## Usage {#usage} + +ElevenLabs voice IDs conform to the following format: + +``` +elevenlabs.: +``` + +**Examples**: +``` +elevenlabs.Rachel:eleven_flash_v2_5 +elevenlabs.21m00Tcm4TlvDq8ikWAM:eleven_v3 +elevenlabs.Brian:eleven_multilingual_v2 +``` + +## Languages {#languages} + +ElevenLabs' multilingual models are designed to be interchangeably compatible with all supported languages. Rather than enforcing language selection with language `code`, this TTS model automatically uses the appropriate language of the input text. -Consult ElevenLabs' [supported languages resource](https://help.elevenlabs.io/hc/en-us/articles/13313366263441-What-languages-do-you-support) +Consult ElevenLabs' +[supported languages resource](https://help.elevenlabs.io/hc/en-us/articles/13313366263441-What-languages-do-you-support) for an up-to-date list of supported languages. -## Voice IDs - -Copy the voice ID from the list of supported ElevenLabs voices above. -Prepend `elevenlabs.` and the string is ready for use. -For example: `elevenlabs.sam` - --- -## Examples +## Examples {#examples} Learn how to use ElevenLabs voices on the SignalWire platform. @@ -73,9 +141,11 @@ const playback = await call.playTTS({ await playback.ended(); ``` +{/* ElevenLabs voices are not yet supported in Call Flow Builder. - + +*/} ```xml @@ -86,4 +156,4 @@ ElevenLabs voices are not yet supported in Call Flow Builder. ``` - \ No newline at end of file + diff --git a/website/docs/main/home/calling/voice/tts/google.mdx b/website/docs/main/home/calling/voice/tts/google.mdx index ef2e0774c..615bf2614 100644 --- a/website/docs/main/home/calling/voice/tts/google.mdx +++ b/website/docs/main/home/calling/voice/tts/google.mdx @@ -12,20 +12,91 @@ SignalWire supports all Google Cloud voices in both General Availability and Pre [launch stages](https://cloud.google.com/products?hl=en#product-launch-stages), except for the Studio model. +## Models {#models} + +Google Cloud offers multiple TTS model types with varying quality and pricing: + +| Model Type | Description | +|------------|-------------| +| `Standard` | Basic, budget-friendly TTS model | +| `WaveNet` | Deep learning-based, natural and lifelike speech | +| `Neural2` | Advanced model with human-like pronunciation | +| `Polyglot` | Multi-language variants of specific voices | + +The model type is encoded in the voice name (e.g., `en-US-Neural2-A`, `es-ES-Wavenet-B`). + - [Standard](https://cloud.google.com/text-to-speech/docs/voice-types#standard_voices) is a basic, reliable, and budget-friendly text-to-speech model. The Standard model is less natural-sounding than WaveNet and Neural2, but more cost-effective. - [WaveNet](https://cloud.google.com/text-to-speech/docs/voice-types#wavenet_voices) is powered by deep learning technology and offers more natural and lifelike speech output. - [Neural2](https://cloud.google.com/text-to-speech/docs/voice-types#neural2_voices) -is based on the same technology used to create -[Custom Voices](https://cloud.google.com/text-to-speech/custom-voice/docs) +is based on the same technology used to create Custom Voices and prioritizes natural and human-like pronunciation and intonation. - [Polyglot](https://cloud.google.com/text-to-speech/docs/polyglot?hl=en#overview) voices have variants in multiple languages. For example, at time of writing, the `polyglot-1` voice has variants for English (Australia), English (US), French, German, Spanish (Spain), and Spanish (US). -## Languages +## Billing {#billing} + +Google Cloud TTS usage on SignalWire is billed according to the following SKU codes: + +| Billing SKU | Models | Description | +|-------------|--------|-------------| +| `gcloud` | Standard, WaveNet | Traditional and WaveNet model billing | +| `gcloud_cog` | Neural2, Polyglot | Cognitive services (Neural2) model billing | + +The billing SKU is automatically determined by the voice model type. Neural2 and Polyglot voices use the `gcloud_cog` SKU, while Standard and WaveNet voices use the `gcloud` SKU. + +Consult the [Voice API Pricing](https://signalwire.com/pricing/voice) page for current rates. + +## Usage {#usage} + +Copy the voice ID in whole from the **Voice name** column of Google's table of +[supported voices](https://cloud.google.com/text-to-speech/docs/voices). +Google Cloud voice IDs encode language and model information, +so no modification is needed to make these selections. +Prepend `gcloud.` and the string is ready for use. +For example: `gcloud.en-GB-Wavenet-A` + +Google Cloud voice IDs conform to the following format: + +``` +gcloud. +``` + +Where `` is the complete voice name from Google's [supported voices table](https://cloud.google.com/text-to-speech/docs/voices). + +**Voice name pattern:** + +Google Cloud voice names follow: `--` + +- `language`: Language code (e.g., `en-US`, `es-ES`, `ja-JP`) +- `model`: Model type (e.g., `Standard`, `Wavenet`, `Neural2`, `Polyglot`) +- `variant`: Voice variant letter (e.g., `A`, `B`, `C`) + +**Examples:** +``` +gcloud.en-US-Neural2-A +gcloud.en-GB-Wavenet-B +gcloud.es-ES-Neural2-A +gcloud.ja-JP-Neural2-B +gcloud.fr-FR-Wavenet-C +gcloud.de-DE-Standard-A +gcloud.en-US-Polyglot-1 +``` + +**Case insensitivity:** + +Voice IDs are case-insensitive. These are equivalent: +``` +gcloud.en-US-Neural2-A +gcloud.en-us-neural2-a +``` + +**Note:** Google Cloud voice IDs already encode language and model information. + +## Languages {#languages} Sample all available voices with [Google's supported voices and languages reference](https://cloud.google.com/text-to-speech/docs/voices). @@ -39,20 +110,9 @@ For example: - Spanish (Spain) Neural2 male voice: `es-ES-Neural2-B` - Mandarin Chinese Standard female voice: `cmn-CN-Standard-D` -## Voice IDs - -Copy the voice ID in whole from the **Voice name** column of Google's table of -[supported voices](https://cloud.google.com/text-to-speech/docs/voices). -Google Cloud voice IDs encode language and model information, so no modification is needed to make these selections. -Prepend `gcloud.` and the string is ready for use. -For example: `gcloud.en-GB-Wavenet-A` - -{/* Refer to the [Types of voices](https://cloud.google.com/text-to-speech/docs/voice-types#studio_voices) -guide for information regarding SSML compatibility, product release status, and audio quality. */} - --- -## Examples +## Examples {#examples} Learn how to use Google Cloud voices on the SignalWire platform. @@ -108,4 +168,4 @@ await playback.ended(); ``` - \ No newline at end of file + diff --git a/website/docs/main/home/calling/voice/tts/index.mdx b/website/docs/main/home/calling/voice/tts/index.mdx index 6e8f9ea42..4f4c3326c 100644 --- a/website/docs/main/home/calling/voice/tts/index.mdx +++ b/website/docs/main/home/calling/voice/tts/index.mdx @@ -11,10 +11,12 @@ description: Detailed list of all the TTS providers and voices SignalWire suppor import CodeBlock from '@theme/CodeBlock'; import Admonition from '@theme/Admonition'; -[gcloud]: /voice/tts/gcloud [polly]: /voice/tts/amazon-polly +[azure]: /voice/tts/azure +[cartesia]: /voice/tts/cartesia [deepgram]: /voice/tts/deepgram [elevenlabs]: /voice/tts/elevenlabs +[gcloud]: /voice/tts/gcloud [openai]: /voice/tts/openai [rime]: /voice/tts/rime @@ -24,25 +26,25 @@ import Admonition from '@theme/Admonition'; ![A grid of logos for TTS providers on the SignalWire platform.](@image/external/tts.png) -SignalWire's cloud platform integrates with leading third-party text-to-speech (TTS) providers. +SignalWire integrates natively with leading third-party text-to-speech (TTS) providers. This guide describes supported engines, voices, and languages. Refer to each provider's documentation for up-to-date model details and service information. -## **Compare providers and models** {#providers} +## Compare providers and models {#providers} SignalWire's TTS providers offer a wide range of voice engines optimized for various applications. Select a provider, model, and voice according to the following considerations: -**Cost:** -When cost-efficiency is the top priority, select a Standard-tier voice from -[Google Cloud][gcloud] or [Amazon Polly][polly]. -Review our [pricing information](#pricing) to learn more. - **Language support:** -Some [Rime][rime] voices are English-Spanish bilingual. -[Amazon Polly][polly], [ElevenLabs][elevenlabs], [Google Cloud][gcloud], and [OpenAI][openai] +At time of writing, engine language support is as follows. +Consult each provider's reference documentation for the most up-to-date information. +- [Rime][rime] voices support +English, Spanish, French, German, and Hindi (Arcana model only). +- [Deepgram][deepgram] voices support +English, Spanish, German, French, Dutch, Italian, and Japanese. +- [Amazon Polly][polly], [Azure][azure], [Cartesia][cartesia], and [Google Cloud][gcloud] offer a wide range of supported languages. -In addition, all [ElevenLabs][elevenlabs] and [OpenAI][openai] voices are fully multilingual. +- All [ElevenLabs][elevenlabs] and [OpenAI][openai] voices are fully multilingual. **SSML support:** Google Cloud and Amazon Polly support [SSML](/compatibility-api/cxml/voice/say#speech-synthesis-markup-language-ssml) @@ -52,33 +54,41 @@ Refer to the Amazon Polly docs for more information on [using SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) and [supported SSML tags.](https://docs.aws.amazon.com/polly/latest/dg/supportedtags.html) -## **Use voice identifier strings** +## Use voice identifier strings + +Compose voice identifier strings using the following general format: -Compose voice identifier strings using the `.` format. +``` +engine.voice:model +``` -First, select your engine using its identifier (eg., `gcloud`, `amazon`, `elevenlabs`, etc). -Append a period (`.`), followed by the specific **voice ID** from the TTS provider. +| Identifier | Description | +| ------------------------------------------------------- | ----------------------------------------------------------- | +| `engine`
required | The TTS provider (e.g., `elevenlabs`, `rime`, `openai`) | +| `voice`
required | The voice identifier (name or ID depending on engine) | +| `model`
optional | Model variant (not all engines support this) | -:::tip Case insensitivity +:::info Case insensitivity -Voice identifier strings are **case insensitive**. -For example, -`gcloud.en-US-Neural2-A`, -`gcloud.en-us-neural2-a`, and -`GCLOUD.EN-US-NEURAL2-A` are equivalent. +Since voice ID strings are case insensitive, the following strings are equivalent: +``` +gcloud.en-US-Neural2-A +gcloud.en-us-neural2-a +GCLOUD.EN-US-NEURAL2-A +``` ::: For detailed instructions for each provider, consult the voice ID references linked in the **Usage** column of the below table. | TTS provider | Engine code | Sample voice ID string | Usage | | :-------------- | :----------- | :---------------------------------------------- | ---------------------------------------------- | -| Amazon Polly | `amazon` | `amazon.Joanna-Neural` | [Reference](/voice/tts/amazon-polly#voice-ids) | -| Cartesia | `cartesia` | `cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab` | [Reference](/voice/tts/cartesia#voice-ids) | -| Deepgram | `deepgram` | `deepgram.aura-asteria-en` | [Reference](/voice/tts/deepgram#voice-ids) | -| ElevenLabs | `elevenlabs` | `elevenlabs.thomas` | [Reference](/voice/tts/elevenlabs#voice-ids) | -| Google Cloud | `gcloud` | `gcloud.en-US-Casual-K` | [Reference](/voice/tts/gcloud#voice-ids) | -| Microsoft Azure | `azure` | `en-US-AvaNeural` | [Reference](/voice/tts/azure#voice-ids) | -| OpenAI | `openai` | `openai.alloy` | [Reference](/voice/tts/openai#voice-ids) | +| Amazon Polly | `amazon` | `amazon.Joanna-Neural` | [Reference](/voice/tts/amazon-polly#usage) | +| Azure | `azure` | `en-US-AvaNeural` | [Reference](/voice/tts/azure#usage) | +| Cartesia | `cartesia` | `cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab` | [Reference](/voice/tts/cartesia#usage) | +| Deepgram | `deepgram` | `deepgram.aura-asteria-en` | [Reference](/voice/tts/deepgram#usage) | +| ElevenLabs | `elevenlabs` | `elevenlabs.thomas` | [Reference](/voice/tts/elevenlabs#usage) | +| Google Cloud | `gcloud` | `gcloud.en-US-Casual-K` | [Reference](/voice/tts/gcloud#usage) | +| OpenAI | `openai` | `openai.alloy` | [Reference](/voice/tts/openai#usage) | | Rime | `rime` | `rime.luna:arcana` | [Reference](/voice/tts/rime#voices) |
diff --git a/website/docs/main/home/calling/voice/tts/openai.mdx b/website/docs/main/home/calling/voice/tts/openai.mdx index 72fe80b6d..6be0172f2 100644 --- a/website/docs/main/home/calling/voice/tts/openai.mdx +++ b/website/docs/main/home/calling/voice/tts/openai.mdx @@ -7,21 +7,64 @@ slug: /voice/tts/openai # OpenAI OpenAI offers versatile multilingual voices balancing low latency and good quality. -While voices are optimized for English, they perform well across all [supported languages](https://platform.openai.com/docs/guides/text-to-speech/supported-languages). +While voices are optimized for English, they perform well across all +[supported languages][languages]. -Consult [OpenAI's Text-to-Speech documentation](https://platform.openai.com/docs/guides/text-to-speech/overview) +Consult +[OpenAI's Text-to-Speech documentation][tts] for more information and audio samples for available voices. -## Voice IDs +## Models {#models} -Copy the voice ID from OpenAI's [Voice Options](https://platform.openai.com/docs/guides/text-to-speech/voice-options) reference. +OpenAI offers two TTS models with different quality and latency characteristics: -Prepend `openai.` and the string is ready for use. -For example: `openai.alloy` +| Model | Description | +|-------|-------------| +| `tts-1` | **Default** - Standard quality, optimized for speed | +| `tts-1-hd` | High-definition quality, improved audio fidelity | + +## Voices {#voices} + +OpenAI provides 6 fully multilingual voices optimized for natural-sounding speech: + +| Voice | Description | +|-------|-------------| +| `alloy` | Neutral, balanced voice | +| `echo` | Warm, expressive voice | +| `fable` | British accent, articulate | +| `onyx` | Deep, authoritative voice | +| `nova` | Energetic, friendly voice | +| `shimmer` | Soft, gentle voice | + +## Languages {#languages} + +All OpenAI voices are fully multilingual and automatically adapt to the input text language. + +Consult OpenAI's [supported languages resource][languages] +for an up-to-date list. + +## Usage {#usage} + +OpenAI voice IDs conform to the following format: + +``` +openai.: +``` + +**Parameters:** +- `voice` (required): One of: alloy, echo, fable, onyx, nova, shimmer +- `model` (optional): `tts-1` (default) or `tts-1-hd` + +**Examples:** +``` +openai.alloy +openai.nova:tts-1-hd +openai.fable:tts-1 +``` --- -## Examples +## Examples {#examples} Learn how to use OpenAI voices on the SignalWire platform. @@ -77,4 +120,8 @@ OpenAI voices are not yet supported in Call Flow Builder. ``` - \ No newline at end of file + + + +[languages]: https://platform.openai.com/docs/guides/text-to-speech#supported-languages "OpenAI reference on supported languages." +[tts]: https://platform.openai.com/docs/guides/text-to-speech#supported-languages "OpenAI TTS documentation." diff --git a/website/docs/main/home/calling/voice/tts/polly.mdx b/website/docs/main/home/calling/voice/tts/polly.mdx index ad1bda38c..89654147b 100644 --- a/website/docs/main/home/calling/voice/tts/polly.mdx +++ b/website/docs/main/home/calling/voice/tts/polly.mdx @@ -9,7 +9,7 @@ sidebar_position: 9 Amazon Web Services' Polly TTS engine includes several models to accommodate different use cases. -## Models +## Models {#models} SignalWire supports the following three Amazon models. @@ -35,18 +35,18 @@ SignalWire supports the following three Amazon models. -## Languages +## Languages {#languages} Consult AWS documentation for a comprehensive and up-to-date list of supported voices, as well as information on accented and fully bilingual voices. - + + Most Amazon Polly voices support a single language. + Select voices from this list, which includes Standard, Neural, and Generative models. + - - Most Amazon Polly voices support a single language. - Select voices from this list, which includes Standard, Neural, and Generative models. - + All Amazon Polly voices support accented bilingual pronunciation through the use of the SSML `lang` tag. @@ -58,9 +58,13 @@ as well as information on accented and fully bilingual voices. -## Voice IDs +## Usage {#usage} -Amazon voice IDs are composed of four sections: +Amazon voice IDs conform to the following format: + +``` +amazon.:: +``` | Parameter | Possible values | Description | | :-------------------------------------------------------- | :---------------------------------------------------------------------------- | :-------------------------------------- | @@ -69,26 +73,26 @@ Amazon voice IDs are composed of four sections: | `model`
optional | `standard`, `neural`, or `generative` | Amazon Polly model. Default: `standard` | | `language`
optional | Choose from the [**Language code** column][polly] | Sets model language. Default: `en-US` | -Create the voice string according to the following pattern: - +**Examples:** ``` -amazon.voice:model:language +amazon.Joanna +amazon.Joanna:standard:en-US +amazon.Kendra:neural:en-US +amazon.Matthew:neural:en-US +amazon.Danielle:generative:en-US +amazon.Amy:generative:en-GB +amazon.Aditi:standard:hi-IN ``` -### Examples - -```bash -# The Danielle voice, which supports the default Standard model and en-US language -amazon.Danielle - -# Two equivalent strings for the Standard-model Aditi bilingual voice in the Hindi language -amazon.Aditi:standard:hi-IN -amazon.Aditi:hi-IN +**Simplified Format:** -# The Amy Generative model in British English -amazon.Amy:generative:en-GB +For voices that only support one model, you can omit the model parameter: +``` +amazon.: ``` +Example: `amazon.Aditi:hi-IN` (Standard model implied) + :::note The `polly` engine code is being deprecated. Use `amazon` instead. ::: @@ -100,7 +104,7 @@ If your TTS request is longer than 3000 characters, you will experience silence. --- -## Examples +## Examples {#examples} See how to use Amazon Polly voices on the SignalWire platform. @@ -158,4 +162,5 @@ await playback.ended(); -[polly]: https://docs.aws.amazon.com/polly/latest/dg/available-voices.html "Available Amazon Polly voices" \ No newline at end of file +[polly]: https://docs.aws.amazon.com/polly/latest/dg/available-voices.html "Available Amazon Polly voices" +[polly-langs]: https://docs.aws.amazon.com/polly/latest/dg/supported-languages.html "Languages supported by Amazon Polly" diff --git a/website/docs/main/home/calling/voice/tts/rime.mdx b/website/docs/main/home/calling/voice/tts/rime.mdx index 69540590f..057a8ed99 100644 --- a/website/docs/main/home/calling/voice/tts/rime.mdx +++ b/website/docs/main/home/calling/voice/tts/rime.mdx @@ -1,8 +1,7 @@ --- -title: Rime TTS voices on the SignalWire Platform +title: The Rime TTS engine slug: /voice/tts/rime sidebar_label: Rime -sidebar_position: 0 description: Learn how to use Rime's Arcana and Mist v2 TTS models with SignalWire AI Voice applications. image: /docs/home/calling/voice/tts/preview.webp --- @@ -17,53 +16,31 @@ import { TbCrystalBall } from "react-icons/tb"; import { MdOutlineCode, MdDashboard, MdApi, MdWebAsset } from "react-icons/md"; import { FaMagic, FaBookOpen } from "react-icons/fa"; - - ![Rime's logo.](@image/external/rime-plus-sw.png) - +Rime offers uniquely realistic voices with a focus on natural expressiveness. + +## Models {#models} + +| Model | Description | +|-------|-------------| +| `mistv2` | **Default** - Updated version of mist | +| `arcana` | Expressive model with natural intonation | +| `mist`
Deprecated | Fast, precise model for business applications | + + + } + href="https://docs.rime.ai/api-reference/models#mist"> + Mist is Rime’s fastest model, built for high-volume, business-critical applications. + + } + href="https://docs.rime.ai/api-reference/models#arcana"> + Arcana is Rime's latest and greatest model, offering a variety of ultra-realistic voices + prioritizing authenticity and character. + + -Rime voices are live on the SignalWire platform! -Read on to learn about the available models, and -try out Arcana voices with a SignalWire Voice AI Agent. - -## Models - -### Mist v2 - -
- -
- Mist is Rime’s fastest model, built for high-volume, business-critical applications. - Rime's fastest and most precise voices help you convert prospects, retain customers, and drive sales by ensuring your message resonates exactly as intended. - -
- -
- } href="https://docs.rime.ai/api-reference/models"> - View Rime's model reference - -
- -
- -### Arcana - -
- -
- Arcana is Rime's latest and greatest model, offering a variety of ultra-realistic voices. - These voices prioritize authenticity and character, capturing natural rhythms and tiny imperfections that make voices sound human. - Perfect for creative applications where realism is a top priority. -
- -
- } href="https://www.rime.ai/blog/introducing-arcana/"> - Read Rime's announcement blog post - -
- -
- -## Voices +## Voices {#voices} Mist v2 is the default Rime model on the SignalWire platform. To use this model, simply set the voice ID. @@ -80,6 +57,33 @@ languages: model: arcana ``` +## Languages {#languages} + +As of October 29th, 2025, Rime supports the following languages: + +| Language | Code | +| :------ | :---- | +| English | `eng` | +| Spanish | `spa` | +| French | `fra` | +| German | `ger` | +| Hindi (Arcana only) | `hin` | + +Refer to the +[Rime docs](https://docs.rime.ai/api-reference/voices) +for the most up-to-date reference to supported languages. + +## Usage {#usage} + +**Format**: `rime.:` + +**Examples**: +``` +rime.spore:arcana +rime.speaker1:mistv2 +rime.voice123:mist +``` + For a full demonstration and sample script, see below. @@ -102,6 +106,8 @@ For a full demonstration and sample script, see below.
+--- + ## Build with Rime on SignalWire diff --git a/website/images/external/rime-plus-sw.png b/website/images/external/rime-plus-sw.png deleted file mode 100644 index e16c9dc44..000000000 Binary files a/website/images/external/rime-plus-sw.png and /dev/null differ