Build an open future with us.

Invest in Mycroft and become a community partner.

(solved almost) Can't change the language to French


#1

Hello,
I’m working about mycroft since June, and I want to switch it to french,
I followed the tutorial here : https://mycroft.ai/documentation/language-support/french/ but I have some problems.
Even if i change the mycroft.conf, the wake_word are not detected,

Sincerely Yours,
AussenacB.


#2

Re, I just found my errors !
First I just have to modify the mycroft.conf locate at .mycroft,
Then I tested with one skill, I changed the file Vocab to “fr” and that works !


#3

Fantastic! Thanks for posting the solution!


#4

@Baptiste_Aussenac

How exactly did you manage to get mycroft work in french? I’m trying to get mycroft up and running in german, but without success. I’ve been following the guide for german language setup which is pretty similar to the guide for french language support. Unfortunately mycroft doesn’t react at all when saying the wake word.
Did you use a Mark device or mycroft for Linux (which I am using) or some other setup?
Where do I find the file Vocab to change the language setting?
Which skill did you test with?

Hope you get give me some hints to get mycroft speak german.

Thanks in advance

McFly


#5

Hey, let me try to help you,
First, I have two files mycroft.conf, the first have the modified lines ( locate at .mycroft/mycroft.conf)

     "lang": "fr",

     "listener": {

       "wake_word": "salutations mycroft",
       "phonemes": "SS AA LL UU TT AA SS YY ON . M AY K RR AO F T",
       "threshold": 1e-10,
       "standup_word": "salutations",
       "standup_phonemes": "ss aa ll uu tt aa ss yy on",
       "standup_threshold": 1e-10
     },
   "tts": {
     "module": "espeak",
     "espeak": {
       "lang": "fr",
       "voice": "m1"
     }
   }
   }

and the second one is locate here : ~/mycroft-core/mycroft/configuration/mycroft.conf it contain the default configuration.


#6

Here is my solution for german language (works on PiCroft). I decided to go with the english default wake word “hey mycroft” as it feels not to uncomfortable in german.
Current setting below uses Google-TTS but you can switch to espeak if you want to by changing “module”: “google” to “module”: “espeak” (it took me some time to understand that I have to “apt-get get install espeak” to make it work…)

{
...
"tts": {
      "module": "google",
      "espeak": {
        "path": "/usr/bin/espeak",
        "lang": "de",
        "voice": "mb-de2"
      },
     "google" : {
      "lang": "de"
     }
    },
  "hotwords": {
    "hey mycroft": {
      "module": "precise"
    }
  },
  "lang": "de-de"
...

}

Note: after reboot it sometimes takes a minute or two until german language is initialized.


#7

Do you know where is the file “pocketsphinx_audio_consumer.py” and do I have to change the hotword_factory.py too ? (there is some lines which contains lang=“en-us”) .
Tnx.

I want to know if it’s possible to talk two languages at the same time.


#8

Oh I forgot to inform that the file for grammar
this one : _your_base_dir_mycroft/client/speech/recognizer/model/fr/fr.lm
isn’t available but it’s write on the tutorial


#9

@Dominik @Baptiste_Aussenac
Thanks for your help

@Dominik
Installing espeak did the job. Now Mycroft understands what I’m saying in German. Unfortunately, the only answer I get for any question is “not loaded”. I guess the problem is that the skills are not set to German language!? Did you make any changes to your skill files?

Best regards


#10

I have used espeak only for text-to-speech voice output. But the espeak voice is very robotic/synthetic and I used it only for an hour or two until I figured out how to use Google-TTS with german voice (see my configuration example above).

My speech-to-text voice input is handled by Google-STT via setting in home.mycroft.ai.

Some skills (time-date, weather) have already some basic translation to german, but it seems that not all of them were done by native speakers. Right now i am contributing some more/better translations, starting with fallback-unknown and weather…


#11

Hi Dominik,

thanks again for your assistance. I tried your suggested settings with google as well. The only progress I made was, that now Mycroft seems to also answer in German. But the only answer I get for each question I ask is “Not Loaded”, which is pronounced in a pretty German way. There are a few Errors showing in CLI so I guess this has nothing more to do with language support directly. So I will open a new thread to find some solutions.
But thanks for bringing me that far.
Best regards


After configuring Mycroft for German the only answer is "not loaded"
#12

maybe it’s because you haven’t skills in german ?
You have to create the “german version” (as you see in the vocab, it’s “en-US”. did you do that ?


#13

No, I didn’t. Where can I find that vocab file? Is “vocab” the full name of the file or is there an ending missing?


#14

Hi @Baptiste_Aussenac,

I fond the folders and did the changes. Now it works. Thanks a lot for your help.


#15

Good evening,

I’ve tried all you said, unfortunately I still have this exception:

mycroft.client.speech.hotword_factory:initialize:267 - ERROR - Could not create hotword. Falling back to default.
Traceback (most recent call last):
File “/home/nostromo/Documents/programmation/mycroft-core/mycroft/client/speech/hotword_factory.py”, line 260, in initialize
instance = clazz(hotword, config, lang=lang)
File “/home/nostromo/Documents/programmation/mycroft-core/mycroft/client/speech/hotword_factory.py”, line 73, in init
self.decoder = Decoder(config)
File “/home/nostromo/Documents/programmation/mycroft-core/.venv/lib/python3.5/site-packages/pocketsphinx/pocketsphinx.py”, line 277, in init
this = _pocketsphinx.new_Decoder(*args)
RuntimeError: new_Decoder returned -1

I use the dev branch. I can’t find the expected content in the Python files found in the documentation (listener.py and pocketsphinx_audio_consumer.py): is the code editing still needed?

Any ideas, please?


#16

Hi there @BugHunterPhilosopher, thanks for reporting this.

The error means that the decoder failed to find PocketSphinx models in the path that was specified in your code. How did you specify the PocketSphinx models?


#17

Fair enough. I have all in /usr/local/share/pocketsphinx/model/fr/fr as the documentation says. How am I supposed to instruct Mycroft to pick them up, please?


#18

To be honest I’m not sure - our language support is experimental at the moment. You may wish to join our French language chat root at https://chat.mycroft.ai/community/channels/language-fr as there are others who do have French set up successfully; they may be able to assist.


#19

Thank you, I’ll do that!


#20

Hey Dominik,
thank you, your configuration helped me a lot today! I fiddled a little and got the svox-pico voice working for mycroft. I think it’s way superior to the espeak voices. If anyone is interested here is a litte rundown:

comparison espeak picovox
(with two soundsamples): http://blogs.uni-due.de/zim/2014/03/21/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-raspberry-pi-mit-espeak-und-svox-pico/

installing svox-pico
You need:
speech-dispatcher
speech-dispatcher-pico
spd-say

command:
sudo apt install speech-dispatcher speech-dispatcher-pico spd-say

try it:
spd-say -l de -o pico "Hallo, wie geht es dir?"

mycroft.conf:

{
“tts”: {
“module”: “spdsay”,
“spdsay”:{
“lang”:“de”,
“voice”:“pico”
}
},

  "lang": "de-de"

}

modified version of mycroft-core/mycroft/tts/spdsay_tts.py:

modified line is bold:

 def execute(self, sentence, ident=None):
        self.begin_audio()
        subprocess.call(
            **['spd-say', '-w', '-l', self.lang, '-o', self.voice, sentence])**
        self.end_audio()

Because without the -w (wait till spd-say has finished) the audio output is disrupted in the middle if there is another output coming along. “-o pico” (when voice = pico) is telling speech-dispatcher / spd-say which speech-synthesizer to use.

Hope this helps anybody. Bye :wave: