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
dialogentries for that language.
See additional documentation for these languages:
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) 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
- List of languages supported by Google STT
- List of languages supported by IBM Watson Bluemix
- List of languages supported by Wit.AI
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.
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.
In order to support a new language, individual Skills must support that language too.
See here for more information on how Skills are structured - Skills have different
dialog for each language they support.
In addition to the above,
mycroft-core also requires localization, in particular to extract dates and numbers.
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.