Supported languages and recognition models
A recognition model is a model trained to recognize speech in a particular language. The models are trained on datasets generated by Yandex services and applications. This allows us to keep improving speech recognition quality.
The main supported model for each recognition type is the general model. It recognizes speech on any topic in a given language, including short and long utterances, names, addresses, dates, and numbers.
Version tags
Three versions of the general model can be available at the same time. You can select the one you need by tags:
general: Main version.general:rc: Release candidate version available for testing.general:deprecated: Previous version.
Note
We stop supporting the general:deprecated tag versions as new models are released: SpeechKit guarantees two weeks of support for the previous version after we update the general tag version. You can find the list of updates in Yandex SpeechKit release notes: Speech recognition.
You can also use the deferred-general tag for asynchronous recognition. Learn more about asynchronous recognition modes.
Supported recognition languages
Use a recognition language code from the table below. All available code values are case insensitive.
| Code | Language |
|---|---|
auto |
Automatic language recognition |
de-DE |
German |
en-US |
English |
es-ES |
Spanish |
fi-FI |
Finnish |
fr-FR |
French |
he-IL |
Hebrew |
it-IT |
Italian |
kk-KZ |
Kazakh |
nl-NL |
Dutch |
pl-PL |
Polish |
pt-PT |
Portuguese |
pt-BR |
Brazilian Portuguese |
ru-RU |
Russian (default) |
sv-SE |
Swedish |
tr-TR |
Turkish |
uz-UZ |
Uzbek (Latin script) |
Automatic language detection
Note
Language detection and language labels are only available in API v3.
SpeechKit automatically detects language in each sentence during speech recognition.
To use automatic language detection, specify auto in the language_code parameter of the LanguageRestrictionOptions() method:
language_restriction=stt_pb2.LanguageRestrictionOptions(
restriction_type=stt_pb2.LanguageRestrictionOptions.WHITELIST,
language_code=['auto']
)
Along with recognition results, the service returns language labels containing the language code and probability of its correct detection:
language_code: "ru-RU" probability: 0.91582357883453369
If a sentence contains words in different languages, the language may be detected incorrectly. To make recognition more accurate, replace auto with a list of expected languages as a clue for the model. For example:
...
language_code=['en-US', 'es-ES', 'fr-FR']
...
The language is recognized for each phrase. If a sentence has phrases in several languages, all of them will most likely be transcribed in the same language.
Examples
| Text in audio | Transcript |
|---|---|
| Xiaomi is a Chinese brand | shumi is a chinese brand |
| Привет is hi in Russian | privet is hi in russian |
| Men koʻchada sayr qilishni va muzqaymoq isteʼmol qilishni yaxshi koʻraman, I like to take a walk outside and have some ice cream | Men koʻchada sayr qilishni va muzqaymoq isteʼmol qilishni yaxshi koʻraman, I like to take a walk outside and have some ice cream |
Recognition accuracy
You can assess the recognition quality of a SpeechKit model yourself using your own data, e.g., in Yandex DataSphere
Use cases
- Developing a Telegram bot for text recognition in images, audio synthesis and recognition
- Streaming speech recognition with auto language detection in the API v3
- Audio file streaming recognition using the API v3
- Microphone speech streaming recognition using the API v3