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.
| Code | Language | Voice output |
|---|---|---|
ar | Arabic | ✓ |
cs | Czech | ✓ |
da | Danish | ✓ |
de | German | ✓ |
el | Greek | ✓ |
en | English | ✓ |
es | Spanish | ✓ |
fa | Persian (Farsi) | ✓ |
fi | Finnish | ✓ |
fil | Filipino | — |
fr | French | ✓ |
hi | Hindi | ✓ |
hu | Hungarian | ✓ |
id | Indonesian | ✓ |
it | Italian | ✓ |
ja | Japanese | ✓ |
ko | Korean | ✓ |
mk | Macedonian | ✓ |
ms | Malay | ✓ |
nl | Dutch | ✓ |
pl | Polish | ✓ |
pt | Portuguese | ✓ |
ro | Romanian | ✓ |
ru | Russian | ✓ |
sv | Swedish | ✓ |
th | Thai | ✓ |
tr | Turkish | ✓ |
vi | Vietnamese | ✓ |
yue | Cantonese | — |
zh | Chinese (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.