Open chrisjp opened 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...
GET
https://api31-normal-useast2a.tiktokv.com/effect/api/v3/effects
access_key
- 32 char alphanumeric string, looks like it might be an md5 hash. Seems to be generated in the app. No cookies generated by the website contain this value. You'll need HTTP Toolkit to find this.app_version
- self-explanatory. 30.1.2
is the value I'm using, matches the modified .apksdk_version
- unsure which SDK this refers to, possibly something internal. 14.3.0
is a working value.device_id
- a 19-digit numeric [0-9]
ID. You can fake this. 1234567890123456789
will work.device_platform
- Must be android
. I didn't find any other working values.device_type
- model ID of your device. My emulator uses SM-G988N
. You can probably put anything you want here.channel
- Presumably the store the app was acquired from. googleplay
works here.panel
- Panel is what TikTok calls each of its effect categories or something. You need to put speaking-voice
for this.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.
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®ion=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.
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.
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.
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.
You think you can try to add the Cepstral and VocieForge voices?
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.
@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.
I was gonna say. The Cepstral voices should have a VoiceForge version. Try those instead.
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)
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?
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"},
Add Readloud (Ivona) voices if you can
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)
Cerence voices do not work, throwing up a 500
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.
The emotive and children voices from acapela are not working for some reason
I think I found "new" Amazon Neural voices on Streamlabs API (some of them may work):
Also Laila (standard version) and Sergio (both versions) from Acapela no longer work. Can you remove them?
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.
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.
VoiceForge
One voice always results in a timeout error.
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.