Updated my branch with latest official source, first regression test passed.
The differences between my branch and official one are:
-
addition of “mycroft/client/lspeech” directory with the local client
-
in start.sh, changed line:
“voice”) SCRIPT=${TOP}/mycroft/client/speech/main.py ;;
to:
“voice”) SCRIPT=${TOP}/mycroft/client/lspeech/main.py ;;
changes not related to local STT:
-
mycroft/skills/multi_thread_skill.py: optional base class for skills, with some improvements.
-
msm is removed (to enforce locality)
I do not recommend to clone my own branch, I do not guaranty any stability nor continuity. Clone official one and merge manually the previous changes.
Changes in configuration (in bold, mandatory ones for local STT)
“lang”: “es”,
…
“url”: “”,
“update”: false
…
“wake_word”: “vivienda”,
“threshold”: 1e-20,
“standup_word”: “vivienda”,
“standup_phonemes”: “b i b i e n d a”,
“standup_threshold”: 1e-30,
“producer”: “pocketsphinx”,
“grammar”: “jsgf”,
“wake_word_ack_cmnd”: “aplay /home/pma/actual/tools/R2D2a.wav”,
“msg_not_catch”: false,
“debug”: true
…
“module”: “espeak”,
“espeak”: {
“lang”: “es”,
“voice”: “m1”
}
as you can see, in order to increase recognition success ratio, I use initially a non-free speech grammar, stored in file “es.jsgf”. Skills can switch this grammar to any other one during its execution. Current content is:
#JSGF V1.0;
grammar prueba;
public <prueba> = <cmnd1> | <cmnd2> | <cmnd3> | <cmnd4> | <cmnd5> ;
<cmnd1> = apaga la música ;
<cmnd2> = pon música ;
<cmnd3> = avisa <when> | avisa ;
<cmnd4> = graba un mensaje ;
<cmnd5> = televisión pon canal <n_0_100> ;
<when> = en <n_0_100> ( minuto | minutos ) ;
<n_0_9> = cero | un | dos | tres | cuatro | cinco | seis | siete | ocho | nueve ;
<n_10_29> = diez | once | doce | trece | catorce | quince | dieciséis | diecisiete | dieciocho | diecinueve | veinte | veintiuno | veintidós | veintitrés | veinticuatro | veinticinco | veintiséis | veintisiete | veintiocho | veintinueve ;
<n_10n> = treinta | cuarenta | cincuenta | sesenta | setenta | ochenta | noventa ;
<n_0_100> = <n_0_9> | <n_10_29> | <n_10n> [y <n_0_9>] ;