Supported languages
The thirty languages Rhythm transcribes, the narrower set Symphony understands, and how the language field behaves.
Rhythm's thirty languages
Rhythm transcribes thirty languages, plus twenty-two Chinese dialects.
| Chinese | Indonesian | Japanese | Czech |
| English | Italian | Turkish | Filipino |
| Cantonese | Korean | Hindi | Persian |
| Arabic | Russian | Malay | Greek |
| German | Thai | Dutch | Hungarian |
| French | Vietnamese | Swedish | Macedonian |
| Spanish | Danish | Romanian | |
| Portuguese | Finnish | Polish |
Symphony's eighteen languages
Symphony understands speech in a narrower set. Its model card counts nineteen and names eighteen: English, Chinese, Cantonese, Korean, Japanese, German, Russian, Italian, French, Spanish, Portuguese, Dutch, Malay, Indonesian, Turkish, Vietnamese, Arabic, and Urdu.
Seventeen of those eighteen also appear in Rhythm's thirty. Urdu is the one exception, listed by Symphony and not by Rhythm.
| Model | Speech coverage | Use |
|---|---|---|
| Rhythm | Thirty languages plus twenty-two Chinese dialects | Transcription |
| Symphony | Eighteen named languages, seventeen shared with Rhythm | Conversation, speech to speech |
Rhythm reaches further, adding Thai, Hindi, Filipino, Persian, and nine European languages Symphony does not name, among them Polish, Swedish, Greek, and Czech. Symphony can answer in the languages it does understand. Use Rhythm when your audio is in a language Symphony does not name, and Symphony when you need a reply. Models covers the rest of that choice.
Languages with no Sprag voice
Sprag generates speech in ten languages, all of them inside Rhythm's thirty, so a voice product can understand a user in Thai, Hindi, or Polish and have no voice to answer them in. If your product both listens and replies, check what Sprag can speak before committing to a language list.
Setting the language
language takes an ISO-639-1 code, not a language name: en, not English.
Omit it and the model works from the audio alone, which is usually fine for a
clear recording of a single language.
curl https://api.sprag.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $SPRAG_API_KEY" \
-F [email protected] \
-F model=rhythm \
-F language=enAn unrecognized code returns 400, and the error body lists every code the
transcriber accepts. That list is wider than the thirty languages above, so
check that table rather than treating an accepted code as covered.
Set language explicitly when the clip is short, noisy, or contains proper
nouns that read as another language, since those are the cases where an unguided
model is most likely to misread the language. Set it as well when you are
comparing transcripts across a batch, because it removes a source of run-to-run
variation.
Do not read the response for what the transcriber decided. A verbose_json
response carries language only when you sent one, and the value is your own
hint echoed back.