Supported languages

The real-time API accepts ISO-639-1 language codes (en, es, zh, …). Regional tags are accepted (en-US, pt-BR) — only the primary subtag is used.

If you do not know which language will be spoken, pass sourceLanguage=auto with modelName=relay-2. Each utterance is recognised in the language it is spoken in and translated from there; detected_language on every transcript frame tells you which. Add languageHints=en,de,fr to narrow detection to the languages you expect. See Detecting the source language.

To handle a conversation in two languages, pass both as sourceLanguage and targetLanguage with twoWay=true; Pinch detects which one each utterance is in and translates into the other. See Two-way sessions.


Languages

Every code below is supported as both sourceLanguage (input speech) and targetLanguage (output text). The Voice output column marks which languages also have a synthesized voice — use these with audioOutputEnabled=true. Languages without a voice are text-only and must be requested with audioOutputEnabled=false.

CodeLanguageVoice output
arArabic
csCzech
daDanish
deGerman
elGreek
enEnglish
esSpanish
faPersian (Farsi)
fiFinnish
filFilipino
frFrench
hiHindi
huHungarian
idIndonesian
itItalian
jaJapanese
koKorean
mkMacedonian
msMalay
nlDutch
plPolish
ptPortuguese
roRomanian
ruRussian
svSwedish
thThai
trTurkish
viVietnamese
yueCantonese
zhChinese (Mandarin)

Voices

Voice-output languages are served by a library of 70 voices — 30 female and 40 male. Each voice has a name and a numeric ID; pass the ID as the voiceId session parameter.

Every voice speaks every voice-output language above. A voice is not tied to a language: pin one to a speaker and it keeps the same identity when targetLanguage changes, so the same person sounds like the same person in English, Spanish, or Japanese. This makes voiceId the right way to give each of your users, agents, or presenters a consistent voice.

List the catalog at any time:

curl https://ws.startpinch.com/v1/voices
{
  "voices": [
    { "id": 1, "name": "Petra", "gender": "female" },
    { "id": 2, "name": "Ulysses", "gender": "male" }
  ]
}

Filter with ?gender=female or ?gender=male.

If you omit voiceId, voiceType (male or female) selects a default voice for that gender. Clients that already send only voiceType keep working unchanged.

With modelName=relay-2, voiceId=auto gives each speaker the library voice that sounds most like them. See voiceId=auto.

Requesting an unsupported targetLanguage with audioOutputEnabled=true returns an error frame. Pass audioOutputEnabled=false to get transcripts in any of the languages above.