Estimated reading time: 3 minutes

Adding a new language to Mycroft

The Mycroft software suite has many elements. Adding language support for Mycroft means that each of those elements has to support the new language. This page walks you what has to be done for each of the elements. This is currently a significant undertaking; it is complex and will require some development and Linux system administration knowledge.

  • Wake Word: When you Speak ‘Hey Mycroft, do something’, you are invoking a Wake Word. To change your Wake Word to another language, you need to install libraries for that language, and configure your Wake Word so that it has phonemes available in the library.
  • Speech to Text: Mycroft is designed to be modular, so you can choose which Speech to Text engine you use. You need to find and configure a Speech to Text engine for your language.
  • Text to Speech: Again, Mycroft is designed to be modula, so you can choosen which Text to Speech engine you use. You need to find and configure a Text to Speech engine for your language.
  • Skills: To support a language, a Skill must have vocab and dialog entries for that language.

See additional documentation for these languages:

Wake Word

To change the Wake Word, you will need to install libraries for PocketSphinx, then ensure that the foreign language dictionary contains phonemes for the Wake Word you want to use.

Speech to text (STT)

Speech to text (STT) is the part of Mycroft that translates spoken words into text. That text is then used by intent parsers, and then by Skills.

In order to support a new language, a Speech to Text engine (STT engine) must be available.

STT engines are made available by different vendors, and they each have different licenses and usage restrictions.

NOTE: As of late 2017, Mycroft.AI is working with Mozilla Voice to build an open source STT engine for multiple languages. This development will occur over 2018

NOTE: PocketSphinx is not currently supported on Mycroft

Once you’ve found an STT engine for your language, you will need to configure Mycroft to use it. This is done through the mycroft.conf file.

Text to Speech

In order to support a new language, a Text to Speech (TTS) engine must be available.

TTS engines are made available by different vendors, and they each have different licenses and usage restrictions.

Once you’ve found an TTS engine for your language, you will need to configure Mycroft to use it. This is done through the mycroft.conf file.

Skills

In order to support a new language, individual Skills must support that language too.

See here for more information on how Skills are structuredSkills have different vocab and dialog for each language they support.

Mycroft Core

In addition to the above, mycroft-core also requires localization, in particular to extract dates and numbers.

For more information, have a look at the lang directory within mycroft/util in mycroft-core.

Some common files for each language are:

  • parse_LANG.py – this file parses large numbers, extracts dates and times in formats specific to the language, and handles definite articles such as ‘a, an’ etc.

  • format_LANG.py – this file formats cardinal and ordinal numbers, and helps to handle pronunciation of complex phrases involving decimals and fractions. Depending on the language, this file will also help format days of the week and other complex date and time phrasing.


Help us serve you better by rating this documentation