chrisjp / tts

A simple tool to demo text-to-speech using various services' voices. HTML5 and Vanilla JS.
https://lazypy.ro/tts
MIT License
68 stars 15 forks source link

List of currently non-functioning voices #13

Open chrisjp opened 1 year ago

chrisjp commented 1 year ago

Last updated: 3rd October, 2023

A number of the APIs have voices available that we either don't know the IDs for (if closed source like TikTok for example) or we do know them but for some reason they don't work. This issue aims to keep track of them all and can be updated as and when they're resolved.

Included are the JSON entries that would be in voices.json if they were working, in case you want to try them out for yourself on your own locally hosted copy of this library.

TikTok

As a closed source app it's difficult to obtain the voice IDs. I previously relied on contributors to other GitHub repos to find these out. In the app there are a lot of named TTS voices that don't match their IDs, furthermore, there are many unique to certain countries/languages.

oscie57 and other contributors to https://github.com/oscie57/tiktok-voice/issues/1 have been a reliable source of voice IDs so far. And thanks to the input of others there I've been able able to ascertain all of the English language voices that were missing.

Currently unknown English language voice IDs: None!

It is now possible to obtain voice IDs from other countries (see replies), so these are currently in progress.

StreamElements

5 of the 'standard' engine Polly voices do not work. My guess is that these were intentionally removed by StreamElements from their API and replaced with better (in their opinion) alternatives from the Google Text-to-Speech ones they added. Additionally, the Hebrew voice "Doron" (not a Polly voice) returns an error response despite being selectable by streamers in their dashboard - I would expect StreamElements to either fix or remove this one at some point as it's their only option for Hebrew speakers.

{"vid": "Zeina", "name": "Zeina", "flag": "ARAB", "lang": "Arabic", "accent": "", "gender": "F"},
{"vid": "Lea", "name": "Léa", "flag": "FR", "lang": "French", "accent": "", "gender": "F"},
{"vid": "Camila", "name": "Camila", "flag": "BR", "lang": "Portuguese", "accent": "Brazilian", "gender": "F"},
{"vid": "Lucia", "name": "Lucia", "flag": "ES", "lang": "Spanish", "accent": "European", "gender": "F"},
{"vid": "Lupe", "name": "Lupe", "flag": "US", "lang": "Spanish", "accent": "American", "gender": "F"},

{"vid": "Doron", "name": "Doron", "flag": "IL", "lang": "Hebrew", "accent": "", "gender": "M"},

StreamElements

No known issues.

CereProc

No known issues.

IBM Watson

No known issues.

Acapela

No known issues.

Oddcast

No known issues.

Google Translate

No known issues, however the translate site will need to be checked every so often to see if any languages have had a voice added.

Microsoft Azure Speech (via Bing Translator)

A grand total of 142 of Microsoft's bank of voices do not work via the Bing Translator API endpoint we use to generate audio. While some of these are legitimately still in what they call a 'preview' phase, the majority don't appear to have any limitations. My guess is that Microsoft feel these ones aren't as suitable for reading user translations (unclear accent maybe?), though in any case it's odd that Bing specifically isn't able to access them given it's a first party product of theirs. I don't hold much hope for many of these to ever work though those in preview (with a superscript ¹) may be worth checking from time to time.

{"vid": "en-AU-AnnetteNeural", "name": "Annette", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "F"},
{"vid": "en-AU-CarlyNeural", "name": "Carly", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "F"},
{"vid": "en-AU-DarrenNeural", "name": "Darren", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "M"},
{"vid": "en-AU-DuncanNeural", "name": "Duncan", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "M"},
{"vid": "en-AU-ElsieNeural", "name": "Elsie", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "F"},
{"vid": "en-AU-FreyaNeural", "name": "Freya", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "F"},
{"vid": "en-AU-JoanneNeural", "name": "Joanne", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "F"},
{"vid": "en-AU-KenNeural", "name": "Ken", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "M"},
{"vid": "en-AU-KimNeural", "name": "Kim", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "F"},
{"vid": "en-AU-NeilNeural", "name": "Neil", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "M"},
{"vid": "en-AU-TimNeural", "name": "Tim", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "M"},
{"vid": "en-AU-TinaNeural", "name": "Tina", "flag": "AU", "lang": "English", "accent": "Australia", "gender": "F"},
{"vid": "en-GB-AbbiNeural", "name": "Abbi", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "F"},
{"vid": "en-GB-AlfieNeural", "name": "Alfie", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "M"},
{"vid": "en-GB-BellaNeural", "name": "Bella", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "F"},
{"vid": "en-GB-ElliotNeural", "name": "Elliot", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "M"},
{"vid": "en-GB-EthanNeural", "name": "Ethan", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "M"},
{"vid": "en-GB-HollieNeural", "name": "Hollie", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "F"},
{"vid": "en-GB-NoahNeural", "name": "Noah", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "M"},
{"vid": "en-GB-OliverNeural", "name": "Oliver", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "M"},
{"vid": "en-GB-OliviaNeural", "name": "Olivia", "flag": "GB", "lang": "English", "accent": "United Kingdom", "gender": "F"},
{"vid": "en-US-AIGenerateNeural", "name": "AI Generate", "flag": "US", "lang": "English", "accent": "American", "gender": "F"},
{"vid": "en-US-AIGenerateNeural", "name": "AI Generate", "flag": "US", "lang": "English", "accent": "American", "gender": "M"},
{"vid": "en-US-DavisNeural", "name": "Davis", "flag": "US", "lang": "English", "accent": "American", "gender": "M"},
{"vid": "en-US-JaneNeural", "name": "Jane", "flag": "US", "lang": "English", "accent": "American", "gender": "F"},
{"vid": "en-US-JasonNeural", "name": "Jason", "flag": "US", "lang": "English", "accent": "American", "gender": "M"},
{"vid": "en-US-JennyMultilingualNeural", "name": "Jenny Multilingual", "flag": "US", "lang": "English", "accent": "American", "gender": "F"},
{"vid": "en-US-NancyNeural", "name": "Nancy", "flag": "US", "lang": "English", "accent": "American", "gender": "F"},
{"vid": "en-US-SaraNeural", "name": "Sara", "flag": "US", "lang": "English", "accent": "American", "gender": "F"},
{"vid": "en-US-TonyNeural", "name": "Tony", "flag": "US", "lang": "English", "accent": "American", "gender": "M"},
{"vid": "ca-ES-AlbaNeural", "name": "Alba", "flag": "ES-CT", "lang": "Catalan", "accent": "", "gender": "F"},
{"vid": "de-DE-BerndNeural", "name": "Bernd", "flag": "DE", "lang": "German", "accent": "", "gender": "M"},
{"vid": "de-DE-ChristophNeural", "name": "Christoph", "flag": "DE", "lang": "German", "accent": "", "gender": "M"},
{"vid": "de-DE-ElkeNeural", "name": "Elke", "flag": "DE", "lang": "German", "accent": "", "gender": "F"},
{"vid": "de-DE-GiselaNeural", "name": "Gisela", "flag": "DE", "lang": "German", "accent": "", "gender": "F"},
{"vid": "de-DE-KasperNeural", "name": "Kasper", "flag": "DE", "lang": "German", "accent": "", "gender": "M"},
{"vid": "de-DE-KlarissaNeural", "name": "Klarissa", "flag": "DE", "lang": "German", "accent": "", "gender": "F"},
{"vid": "de-DE-KlausNeural", "name": "Klaus", "flag": "DE", "lang": "German", "accent": "", "gender": "M"},
{"vid": "de-DE-LouisaNeural", "name": "Louisa", "flag": "DE", "lang": "German", "accent": "", "gender": "F"},
{"vid": "de-DE-MajaNeural", "name": "Maja", "flag": "DE", "lang": "German", "accent": "", "gender": "F"},
{"vid": "de-DE-RalfNeural", "name": "Ralf", "flag": "DE", "lang": "German", "accent": "", "gender": "M"},
{"vid": "de-DE-TanjaNeural", "name": "Tanja", "flag": "DE", "lang": "German", "accent": "", "gender": "F"},
{"vid": "es-ES-AbrilNeural", "name": "Abril", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "F"},
{"vid": "es-ES-ArnauNeural", "name": "Arnau", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "M"},
{"vid": "es-ES-DarioNeural", "name": "Dario", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "M"},
{"vid": "es-ES-EliasNeural", "name": "Elias", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "M"},
{"vid": "es-ES-EstrellaNeural", "name": "Estrella", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "F"},
{"vid": "es-ES-IreneNeural", "name": "Irene", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "F"},
{"vid": "es-ES-LaiaNeural", "name": "Laia", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "F"},
{"vid": "es-ES-LiaNeural", "name": "Lia", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "F"},
{"vid": "es-ES-NilNeural", "name": "Nil", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "M"},
{"vid": "es-ES-SaulNeural", "name": "Saul", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "M"},
{"vid": "es-ES-TeoNeural", "name": "Teo", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "M"},
{"vid": "es-ES-TrianaNeural", "name": "Triana", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "F"},
{"vid": "es-ES-VeraNeural", "name": "Vera", "flag": "ES", "lang": "Spanish", "accent": "Spain", "gender": "F"},
{"vid": "es-MX-BeatrizNeural", "name": "Beatriz", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "F"},
{"vid": "es-MX-CandelaNeural", "name": "Candela", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "F"},
{"vid": "es-MX-CarlotaNeural", "name": "Carlota", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "F"},
{"vid": "es-MX-CecilioNeural", "name": "Cecilio", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "M"},
{"vid": "es-MX-GerardoNeural", "name": "Gerardo", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "M"},
{"vid": "es-MX-LarissaNeural", "name": "Larissa", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "F"},
{"vid": "es-MX-LibertoNeural", "name": "Liberto", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "M"},
{"vid": "es-MX-LucianoNeural", "name": "Luciano", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "M"},
{"vid": "es-MX-MarinaNeural", "name": "Marina", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "F"},
{"vid": "es-MX-NuriaNeural", "name": "Nuria", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "F"},
{"vid": "es-MX-PelayoNeural", "name": "Pelayo", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "M"},
{"vid": "es-MX-RenataNeural", "name": "Renata", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "F"},
{"vid": "es-MX-YagoNeural", "name": "Yago", "flag": "MX", "lang": "Spanish", "accent": "Mexico", "gender": "M"},
{"vid": "eu-ES-AinhoaNeural", "name": "Ainhoa", "flag": "ES-PV", "lang": "Basque", "accent": "", "gender": "F"},
{"vid": "eu-ES-AnderNeural", "name": "Ander", "flag": "ES-PV", "lang": "Basque", "accent": "", "gender": "M"},
{"vid": "fr-FR-AlainNeural", "name": "Alain", "flag": "FR", "lang": "French", "accent": "", "gender": "M"},
{"vid": "fr-FR-BrigitteNeural", "name": "Brigitte", "flag": "FR", "lang": "French", "accent": "", "gender": "F"},
{"vid": "fr-FR-CelesteNeural", "name": "Celeste", "flag": "FR", "lang": "French", "accent": "", "gender": "F"},
{"vid": "fr-FR-ClaudeNeural", "name": "Claude", "flag": "FR", "lang": "French", "accent": "", "gender": "M"},
{"vid": "fr-FR-CoralieNeural", "name": "Coralie", "flag": "FR", "lang": "French", "accent": "", "gender": "F"},
{"vid": "fr-FR-JacquelineNeural", "name": "Jacqueline", "flag": "FR", "lang": "French", "accent": "", "gender": "F"},
{"vid": "fr-FR-JeromeNeural", "name": "Jerome", "flag": "FR", "lang": "French", "accent": "", "gender": "M"},
{"vid": "fr-FR-JosephineNeural", "name": "Josephine", "flag": "FR", "lang": "French", "accent": "", "gender": "F"},
{"vid": "fr-FR-MauriceNeural", "name": "Maurice", "flag": "FR", "lang": "French", "accent": "", "gender": "M"},
{"vid": "fr-FR-YvesNeural", "name": "Yves", "flag": "FR", "lang": "French", "accent": "", "gender": "M"},
{"vid": "fr-FR-YvetteNeural", "name": "Yvette", "flag": "FR", "lang": "French", "accent": "", "gender": "F"},
{"vid": "hy-AM-AnahitNeural", "name": "Anahit", "flag": "AM", "lang": "Armenian", "accent": "", "gender": "F"},
{"vid": "hy-AM-HaykNeural", "name": "Hayk", "flag": "AM", "lang": "Armenian", "accent": "", "gender": "M"},
{"vid": "it-IT-BenignoNeural", "name": "Benigno", "flag": "IT", "lang": "Italian", "accent": "", "gender": "M"},
{"vid": "it-IT-CalimeroNeural", "name": "Calimero", "flag": "IT", "lang": "Italian", "accent": "", "gender": "M"},
{"vid": "it-IT-CataldoNeural", "name": "Cataldo", "flag": "IT", "lang": "Italian", "accent": "", "gender": "M"},
{"vid": "it-IT-FabiolaNeural", "name": "Fabiola", "flag": "IT", "lang": "Italian", "accent": "", "gender": "F"},
{"vid": "it-IT-FiammaNeural", "name": "Fiamma", "flag": "IT", "lang": "Italian", "accent": "", "gender": "F"},
{"vid": "it-IT-GianniNeural", "name": "Gianni", "flag": "IT", "lang": "Italian", "accent": "", "gender": "M"},
{"vid": "it-IT-ImeldaNeural", "name": "Imelda", "flag": "IT", "lang": "Italian", "accent": "", "gender": "F"},
{"vid": "it-IT-IrmaNeural", "name": "Irma", "flag": "IT", "lang": "Italian", "accent": "", "gender": "F"},
{"vid": "it-IT-LisandroNeural", "name": "Lisandro", "flag": "IT", "lang": "Italian", "accent": "", "gender": "M"},
{"vid": "it-IT-PalmiraNeural", "name": "Palmira", "flag": "IT", "lang": "Italian", "accent": "", "gender": "F"},
{"vid": "it-IT-PierinaNeural", "name": "Pierina", "flag": "IT", "lang": "Italian", "accent": "", "gender": "F"},
{"vid": "it-IT-RinaldoNeural", "name": "Rinaldo", "flag": "IT", "lang": "Italian", "accent": "", "gender": "M"},
{"vid": "ja-JP-AoiNeural", "name": "Aoi", "flag": "JP", "lang": "Japanese", "accent": "", "gender": "F"},
{"vid": "ja-JP-DaichiNeural", "name": "Daichi", "flag": "JP", "lang": "Japanese", "accent": "", "gender": "M"},
{"vid": "ja-JP-MayuNeural", "name": "Mayu", "flag": "JP", "lang": "Japanese", "accent": "", "gender": "F"},
{"vid": "ja-JP-NaokiNeural", "name": "Naoki", "flag": "JP", "lang": "Japanese", "accent": "", "gender": "M"},
{"vid": "ja-JP-ShioriNeural", "name": "Shiori", "flag": "JP", "lang": "Japanese", "accent": "", "gender": "F"},
{"vid": "ko-KR-BongJinNeural", "name": "Bong Jin", "flag": "KR", "lang": "Korean", "accent": "", "gender": "M"},
{"vid": "ko-KR-GookMinNeural", "name": "Gook Min", "flag": "KR", "lang": "Korean", "accent": "", "gender": "M"},
{"vid": "ko-KR-JiMinNeural", "name": "Ji Min", "flag": "KR", "lang": "Korean", "accent": "", "gender": "F"},
{"vid": "ko-KR-SeoHyeonNeural", "name": "Seo Hyeon", "flag": "KR", "lang": "Korean", "accent": "", "gender": "F"},
{"vid": "ko-KR-SoonBokNeural", "name": "Soon Bok", "flag": "KR", "lang": "Korean", "accent": "", "gender": "F"},
{"vid": "ko-KR-YuJinNeural", "name": "Yu Jin", "flag": "KR", "lang": "Korean", "accent": "", "gender": "F"},
{"vid": "pl-PL-AgnieszkaNeural", "name": "Agnieszka", "flag": "PL", "lang": "Polish", "accent": "", "gender": "F"},
{"vid": "pt-BR-BrendaNeural", "name": "Brenda", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "F"},
{"vid": "pt-BR-DonatoNeural", "name": "Donato", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "M"},
{"vid": "pt-BR-ElzaNeural", "name": "Elza", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "F"},
{"vid": "pt-BR-FabioNeural", "name": "Fabio", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "M"},
{"vid": "pt-BR-GiovannaNeural", "name": "Giovanna", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "F"},
{"vid": "pt-BR-HumbertoNeural", "name": "Humberto", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "M"},
{"vid": "pt-BR-JulioNeural", "name": "Julio", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "M"},
{"vid": "pt-BR-LeilaNeural", "name": "Leila", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "F"},
{"vid": "pt-BR-LeticiaNeural", "name": "Leticia", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "F"},
{"vid": "pt-BR-ManuelaNeural", "name": "Manuela", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "F"},
{"vid": "pt-BR-NicolauNeural", "name": "Nicolau", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "M"},
{"vid": "pt-BR-ValerioNeural", "name": "Valerio", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "M"},
{"vid": "pt-BR-YaraNeural", "name": "Yara", "flag": "BR", "lang": "Portuguese", "accent": "Brazil", "gender": "F"},
{"vid": "wuu-CN-XiaotongNeural", "name": "Xiaotong", "flag": "CN", "lang": "Chinese", "accent": "Wu, Simplified", "gender": "F"},
{"vid": "wuu-CN-YunzheNeural", "name": "Yunzhe", "flag": "CN", "lang": "Chinese", "accent": "Wu, Simplified", "gender": "M"},
{"vid": "yue-CN-XiaoMinNeural", "name": "Xiao Min", "flag": "CN", "lang": "Chinese", "accent": "Cantonese, Simplified", "gender": "F"},
{"vid": "yue-CN-YunSongNeural", "name": "Yun Song", "flag": "CN", "lang": "Chinese", "accent": "Cantonese, Simplified", "gender": "M"},
{"vid": "zh-CN-XiaochenNeural", "name": "Xiaochen", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaohanNeural", "name": "Xiaohan", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaomengNeural", "name": "Xiaomeng", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaomoNeural", "name": "Xiaomo", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaoqiuNeural", "name": "Xiaoqiu", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaoruiNeural", "name": "Xiaorui", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaoshuangNeural", "name": "Xiaoshuang", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaoxuanNeural", "name": "Xiaoxuan", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaoyanNeural", "name": "Xiaoyan", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaoyouNeural", "name": "Xiaoyou", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-XiaozhenNeural", "name": "Xiaozhen", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "F"},
{"vid": "zh-CN-YunfengNeural", "name": "Yunfeng", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "M"},
{"vid": "zh-CN-YunhaoNeural", "name": "Yunhao", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "M"},
{"vid": "zh-CN-YunyeNeural", "name": "Yunye", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "M"},
{"vid": "zh-CN-YunzeNeural", "name": "Yunze", "flag": "CN", "lang": "Chinese", "accent": "Mandarin, Simplified", "gender": "M"},
{"vid": "zh-CN-henan-YundengNeural", "name": "Yundeng", "flag": "CN", "lang": "Chinese", "accent": "Zhongyuan Mandarin Henan", "gender": "M"},
{"vid": "zh-CN-shandong-YunxiangNeural", "name": "Yunxiang", "flag": "CN", "lang": "Chinese", "accent": "Jilu Mandarin, Simplified", "gender": "M"},
{"vid": "zh-CN-sichuan-YunxiNeural", "name": "Yunxi", "flag": "CN", "lang": "Chinese", "accent": "Southwestern Mandarin, Simplified", "gender": "M"},

VoiceForge

One voice always results in a timeout error.

{"vid": "Layo", "name": "Layo", "flag": "NG", "lang": "English", "accent": "Nigerian", "gender": "F"},

ReadSpeaker

Removed. Demo website is now paywalled and voice synthesis can no longer be accessed for free.

iSpeech

Removed. Demo website has been non-functional since late 2022. The API is still functioning, though, but obviously requires a valid API key. As such this has effectively paywalled the service. Now available again (as of 3rd October, 2023) by using their actual API this time.

The "Greek Female" voice is no longer listed in the documentation but is still working. The "Taiwan Chinese Female" voice works with the demo key but errors with some API keys, reporting it as an "Invalid voice". It is unknown why this happens.

chrisjp commented 1 year ago

All English language TikTok voices are now found. Other languages currently in progress.

Today I was able to figure out the request for fetching voices list JSON for each language in TikTok (with thanks to several people in the linked issue in the OP).

Bad news it requires an access_key which as far as I can tell is generated inside the app somewhere, so use of HTTP Toolkit and a modified TikTok .apk is required to obtain this.

Here's some quick and dirty documentation for it based on my testing...

API endpoint

GET https://api31-normal-useast2a.tiktokv.com/effect/api/v3/effects

Required parameters

Optional parameters

region - 2-letter uppercase country code. Defaults to US if not set. carrier_region - 2-letter uppercase country code. Defaults to US if not set. On your device this will be the country it's physically located in based on SIM card network you're connected to.

Full URL example

https://api31-normal-useast2a.tiktokv.com/effect/api/v3/effects?access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&app_version=30.1.2&sdk_version=14.3.0&device_id=1234567890123456789&device_platform=android&device_type=SM-G988N&channel=googleplay&region=US&carrier_region=US&panel=speaking-voice you'd need a valid access_key in that for this to work, but no special headers need to be set. You could open it in your browser if you wanted to.

chrisjp commented 1 year ago

Existing languages voices have now been updated for TikTok.

France, Germany, Spain, and South Korea regions are only returning the default English voices using the above method. I don't know what happened to the original voice IDs they have but they do still work. I am assuming they are no longer available in the app, considering even some of the original English aren't any more.

thetoonsofjosh commented 1 year ago

Acapela

has two interesting voices for the Northern Sámi language, the only ones for this language I know of. Neither of them work in their demo.

{"vid": "biera_hmm_22k", "name": "Biera", "flag": "", "lang": "Northern Sámi", "accent": "", "gender": "F"},
{"vid": "elle_hmm_22k", "name": "Elle", "flag": "", "lang": "Northern Sámi", "accent": "", "gender": "F"},

I know this is 4 days ago but about those Northern Sámi Acapela voices, They seem to work now (I tested out the voices in their demo), Not to mention they also removed the background noise.

chrisjp commented 1 year ago

Thanks for the heads up. They must have fixed them in the last week or so, also nice that they've removed the background noise from all voices. I've pushed these changes to the website.

PeeFiftee commented 1 year ago

You think you can try to add the Cepstral and VocieForge voices?

chrisjp commented 1 year ago

VoiceForge is a simple enough addition and I'll hopefully get this added later tonight. Cepstral looks a little more complex but will likely be added quite soon.

chrisjp commented 1 year ago

@PeeFiftee both VoiceForge and Cepstral have been added.

Unfortunately, Cepstral is already rate-limiting requests from my server now due to the amount of users it gets so it's not working well. VoiceForge appears to be fine though.

PeeFiftee commented 1 year ago

I was gonna say. The Cepstral voices should have a VoiceForge version. Try those instead.

PeeFiftee commented 1 year ago

Only the English ones though (and it seems like the new apis only got to the desktop versions, still waiting for the changes to make it to the mobile version)

PeeFiftee commented 1 year ago

While you're at it. I'm sorry if it sounds like I'm annoying you, I'm trying not to. But can you try adding the Readloud(Ivona) and Microsoft SAPI4 (Sam, Robosoft, etc...) apis too?

WaleedAnimate2020 commented 11 months ago

Can you add AT&T Natural voices for me?

Some of them from Oddcast and other from ReadTheWords

AT&T Natural from Oddcast

{"vid": "1-1-1", "name": "Crystal", "flag": "US", "lang": "English", "accent": "American", "gender": "F"}, {"vid": "2-1-1", "name": "Mike", "flag": "US", "lang": "English", "accent": "American", "gender": "M"}, {"vid": "3-1-1", "name": "Claire", "flag": "US", "lang": "English", "accent": "American", "gender": "F"}, {"vid": "4-1-1", "name": "Rich", "flag": "US", "lang": "English", "accent": "American", "gender": "M"}, {"vid": "6-1-1", "name": "Charles", "flag": "GB", "lang": "English", "accent": "American", "gender": "M"}, {"vid": "1-1-4", "name": "Juliette", "flag": "FR", "lang": "French", "accent": "", "gender": "F"}, {"vid": "2-1-4", "name": "Alain", "flag": "FR", "lang": "French", "accent": "", "gender": "M"}, {"vid": "3-1-4", "name": "Pierre", "flag": "CA", "lang": "French", "accent": "Canadian", "gender": "M"}, {"vid": "1-1-3", "name": "Klara", "flag": "DE", "lang": "German", "accent": "", "gender": "F"}, {"vid": "2-1-3", "name": "Reiner", "flag": "DE", "lang": "German", "accent": "", "gender": "M"}, {"vid": "1-1-2", "name": "Rosa", "flag": "MX", "lang": "Spanish", "accent": "Mexican", "gender": "F"}, {"vid": "2-1-2", "name": "Alberto", "flag": "MX", "lang": "Spanish", "accent": "Mexican", "gender": "M"},

and missing from Vocalware are

{"vid": "4-7-1", "name": "Jackson", "flag": "AU", "lang": "English", "accent": "Australian", "gender": "M"}, {"vid": "8-7-1", "name": "Warren", "flag": "US", "lang": "English", "accent": "American", "gender": "M"},

Daniel49332 commented 10 months ago

Add Readloud (Ivona) voices if you can

WaleedAnimate2020 commented 10 months ago

and other AT&T Natural voices too

This website is what you need to find: https://www.readthewords.com/Try.aspx

Names and languages

Mel (US English) Julia (US English) Lauren (US English) Ray (US English) Audrey (UK English) Charles (UK English) Anjali (Indian English)

GJJellyfish commented 10 months ago

Cerence voices do not work, throwing up a 500

chrisjp commented 10 months ago

Cerence: Yeah, looks like that might be an issue with their website as I'm getting the same error from different IP addresses too so they haven't blocked my server's IP. I don't even know how or where the URL for this originally came from, so unless they fix it or someone finds a new working URL we can access these will likely be removed in a future update.

For those requesting new voices, please open a new issue for services we don't have yet. This thread is intended for reporting voices already on the website which have since stopped working.

Also, for those asking about IVONA voices. Amazon bought IVONA years ago and (I believe) all the voices they had available are now part of Amazon Polly (which you can use from either the StreamElements or Streamlabs TTS). They should all have identical names so it seems redundant to add yet another API for these.

WaleedAnimate2020 commented 10 months ago

The emotive and children voices from acapela are not working for some reason

Daniel49332 commented 3 months ago

I think I found "new" Amazon Neural voices on Streamlabs API (some of them may work):

Daniel49332 commented 1 month ago

Also Laila (standard version) and Sergio (both versions) from Acapela no longer work. Can you remove them?