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

See also