fewieden / MMM-voice

Offline Voice Recognition Module for MagicMirror²

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot find the MMM-voice.dic

fewieden opened this issue · comments

ERROR: "dict.c", line 275: Failed to open dictionary file 'modules/MMM-voice/MMM-voice.dic' for reading: No such file or directory

xps:~/MagicMirror$ more modules/MMM-voice/debug.log
INFO: pocketsphinx.c(153): Parsed model-specific feature parameters from /usr/local/share/pocketsphinx/model/en-us/en-us/feat.params
Current configuration:
[NAME] [DEFLT] [VALUE]
-agc none none
-agcthresh 2.0 2.000000e+00
-allphone
-allphone_ci yes yes
-alpha 0.97 9.700000e-01
-ascale 20.0 2.000000e+01
-aw 1 1
-backtrace no no
-beam 1e-48 1.000000e-48
-bestpath yes yes
-bestpathlw 9.5 9.500000e+00
-ceplen 13 13
-cmn live batch
-cmninit 40,3,-1 41.00,-5.29,-0.12,5.09,2.48,-4.07,-1.37,-1.78,-5.08,-2.05,-6.45,-1.42,1.17
-compallsen no no
-dict modules/MMM-voice/MMM-voice.dic
-dictcase no no
-dither no no
-doublebw no no
-ds 1 1
-fdict
-feat 1s_c_d_dd 1s_c_d_dd
-featparams
-fillprob 1e-8 1.000000e-08
-frate 100 100
-fsg
-fsgusealtpron yes yes
-fsgusefiller yes yes
-fwdflat yes yes
-fwdflatbeam 1e-64 1.000000e-64
-fwdflatefwid 4 4
-fwdflatlw 8.5 8.500000e+00
-fwdflatsfwin 25 25
-fwdflatwbeam 7e-29 7.000000e-29
-fwdtree yes yes
-hmm /usr/local/share/pocketsphinx/model/en-us/en-us
-input_endian little little
-jsgf
-keyphrase
-kws
-kws_delay 10 10
-kws_plp 1e-1 1.000000e-01
-kws_threshold 1e-30 1.000000e-30
-latsize 5000 5000
-lda
-ldadim 0 0
-lifter 0 22
-lm modules/MMM-voice/MMM-voice.lm
-lmctl
-lmname
-logbase 1.0001 1.000100e+00
-logfn
-logspec no no
-lowerf 133.33334 1.300000e+02
-lpbeam 1e-40 1.000000e-40
-lponlybeam 7e-29 7.000000e-29
-lw 6.5 6.500000e+00
-maxhmmpf 30000 30000
-maxwpf -1 -1
-mdef
-mean
-mfclogdir
-min_endfr 0 0
-mixw
-mixwfloor 0.0000001 1.000000e-07
-mllr
-mmap yes yes
-ncep 13 13
-nfft 512 512
-nfilt 40 25
-nwpen 1.0 1.000000e+00
-pbeam 1e-48 1.000000e-48
-pip 1.0 1.000000e+00
-pl_beam 1e-10 1.000000e-10
-pl_pbeam 1e-10 1.000000e-10
-pl_pip 1.0 1.000000e+00
-pl_weight 3.0 3.000000e+00
-pl_window 5 5
-rawlogdir
-remove_dc no no
-remove_noise yes yes
-remove_silence yes yes
-round_filters yes yes
-samprate 16000 1.600000e+04
-seed -1 -1
-sendump
-senlogdir
-senmgau
-silprob 0.005 5.000000e-03
-smoothspec no no
-svspec 0-12/13-25/26-38
-tmat
-tmatfloor 0.0001 1.000000e-04
-topn 4 4
-topn_beam 0 0
-toprule
-transform legacy dct
-unit_area yes yes
-upperf 6855.4976 6.800000e+03
-uw 1.0 1.000000e+00
-vad_postspeech 50 50
-vad_prespeech 20 20
-vad_startspeech 10 10
-vad_threshold 3.0 3.000000e+00
-var
-varfloor 0.0001 1.000000e-04
-varnorm no no
-verbose no no
-warp_params
-warp_type inverse_linear inverse_linear
-wbeam 7e-29 7.000000e-29
-wip 0.65 6.500000e-01
-wlen 0.025625 2.562500e-02
INFO: feat.c(715): Initializing feature stream to type: '1s_c_d_dd', ceplen=13, CMN='batch', VARNORM='no', AGC='none'
INFO: acmod.c(162): Using subvector specification 0-12/13-25/26-38
INFO: mdef.c(518): Reading model definition: /usr/local/share/pocketsphinx/model/en-us/en-us/mdef
INFO: mdef.c(531): Found byte-order mark BMDF, assuming this is a binary mdef file
INFO: bin_mdef.c(336): Reading binary model definition: /usr/local/share/pocketsphinx/model/en-us/en-us/mdef
INFO: bin_mdef.c(516): 42 CI-phone, 137053 CD-phone, 3 emitstate/phone, 126 CI-sen, 5126 Sen, 29324 Sen-Seq
INFO: tmat.c(149): Reading HMM transition probability matrices: /usr/local/share/pocketsphinx/model/en-us/en-us/transition_matrices
INFO: acmod.c(113): Attempting to use PTM computation module
INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /usr/local/share/pocketsphinx/model/en-us/en-us/means
INFO: ms_gauden.c(242): 42 codebook, 3 feature, size:
INFO: ms_gauden.c(244): 128x13
INFO: ms_gauden.c(244): 128x13
INFO: ms_gauden.c(244): 128x13
INFO: ms_gauden.c(127): Reading mixture gaussian parameter: /usr/local/share/pocketsphinx/model/en-us/en-us/variances
INFO: ms_gauden.c(242): 42 codebook, 3 feature, size:
INFO: ms_gauden.c(244): 128x13
INFO: ms_gauden.c(244): 128x13
INFO: ms_gauden.c(244): 128x13
INFO: ms_gauden.c(304): 222 variance values floored
INFO: ptm_mgau.c(475): Loading senones from dump file /usr/local/share/pocketsphinx/model/en-us/en-us/sendump
INFO: ptm_mgau.c(499): BEGIN FILE FORMAT DESCRIPTION
INFO: ptm_mgau.c(562): Rows: 128, Columns: 5126
INFO: ptm_mgau.c(594): Using memory-mapped I/O for senones
INFO: ptm_mgau.c(837): Maximum top-N: 4
INFO: phone_loop_search.c(114): State beam -225 Phone exit beam -225 Insertion penalty 0
ERROR: "dict.c", line 275: Failed to open dictionary file 'modules/MMM-voice/MMM-voice.dic' for reading: No such file or directory

Originally posted by @nosee818 in #32 (comment)

Can you type ls -la in your terminal inside the MMM-voice directory and post the content.

Some issue, first-time keeps "Initialising" status long time, even after a weekend.
then I stop the mirror, add debug true, the status show error / undefined.

The debug file show can't find **MMM-voice.dic file.

image
image

Could you please delete words.json and restart the mirror. It should then try to regenreate MMM-voice.dic

Thanks for your reply.
Actually, I read the closed issue about the DIC file.
I have deleted the words.json / error.log/ debug.log several times and restarted mirror. Still same error.

After you deleted the files, could you see some of the following messages in the terminal where you start the MagicMirror?

Starting module helper: MMM-voice
MMM-voice: Checking files.
MMM-voice: Generating dictionairy and language model.
MMM-voice: Couldn't save words.json!
MMM-voice: Saved words.json successfully.

You could also add a console.log('Failed to generate dic file', err); in between line 199 and 200

There is no any message in the terminal when I deleted the words.json file.
First time hang on Initialising long time.
Then I shop and re-run, shows error and no generate a file named console.log.

image

Did you add the code line I posted in the previous comment?
Don't forget to always delete words.json before you start as long as we're debugging it.

Sorry for replying so late. Added the code in <node_helper.js> , right?
So I got the error message on the console.

Starting MagicMirror: v2.5.0
Loading config ...
Loading module helpers ...
No helper found for module: alert.
Initializing new module helper ...
Module helper loaded: updatenotification
No helper found for module: clock.
Initializing new module helper ...
Module helper loaded: calendar
No helper found for module: compliments.
No helper found for module: currentweather.
No helper found for module: weatherforecast.
Initializing new module helper ...
Module helper loaded: newsfeed
Initializing new module helper ...
Module helper loaded: MMM-Clash-Royale
Initializing new module helper ...
Module helper loaded: MMM-voice
All module helpers loaded.
Starting server on port 8080 ...
Server started ...
Connecting socket for: updatenotification
Connecting socket for: calendar
Starting node helper for: calendar
Connecting socket for: newsfeed
Starting module: newsfeed
Connecting socket for: MMM-Clash-Royale
Starting module: MMM-Clash-Royale
Connecting socket for: MMM-voice
Starting module helper: MMM-voice
Sockets connected & modules started ...
Launching application.
Create new calendar fetcher for url: https://www.officeholidays.com/ics/ics_country_code.php?iso=CN - Interval: 300000
Create new news fetcher for url: https://investors.delltechnologies.com/rss/news-releases.xml - Interval: 300000
Get RANDOM_DECK data for url http://www.clashapi.xyz/api/random-deck
MMM-voice: Checking files.
MMM-voice: Generating dictionairy and language model.
MMM-voice: Saved words.json successfully.
Get RANDOM_DECK data for url http://www.clashapi.xyz/api/random-deck
Whoops! There was an uncaught exception...
TypeError: window.$ is not a function
at Object.done (/home/csc/MagicMirror/modules/MMM-voice/node_modules/lmtool/src/findArchive.js:12:25)
at process.nextTick (/home/csc/MagicMirror/modules/MMM-voice/node_modules/jsdom/lib/jsdom.js:297:18)
at process._tickCallback (internal/process/next_tick.js:61:11)
MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues

It looks like a problem with the dependency lmtool, it was not updated in over 3 years and it might conflict now with some of the other dependencies. There is a work around though.

Create a file words.txt with all words from words.json in the following format:

HELLO
WORLD
MAGIC
MIRROR

Then uplodád the file here http://www.speech.cs.cmu.edu/tools/lmtool-new.html

After that extract the file you can download there. Rename the .dic and .lm file to MMM-voice.dic and MMM-voice.lm and place them both in the module directory. Restart your mirror without deleting words.json.

Good news! Looks like it's working. I so appreciate your patience.

Starting module: MMM-Clash-Royale
Connecting socket for: MMM-voice
Starting module helper: MMM-voice
Sockets connected & modules started ...
Launching application.
Create new calendar fetcher for url: https://www.officeholidays.com/ics/ics_country_code.php?iso=CN - Interval: 300000
Create new news fetcher for url: https://investors.delltechnologies.com/rss/news-releases.xml - Interval: 300000
Get RANDOM_DECK data for url http://www.clashapi.xyz/api/random-deck
MMM-voice: Checking files.
MMM-voice: Starting pocketsphinx.
MMM-voice has recognized: TO IS
MMM-voice has recognized: GO
MMM-voice has recognized: GO
MMM-voice has recognized: GO
MMM-voice has recognized: THE
MMM-voice has recognized: WHO
MMM-voice has recognized: WHO WHO
MMM-voice has recognized: THE
MMM-voice has recognized: UP
MMM-voice has recognized: MAGIC MIRROR
MMM-voice has recognized: TO VOICE
MMM-voice has recognized: TO
MMM-voice has recognized: TO
MMM-voice has recognized: TO MIRROR
MMM-voice has recognized: MIRROR
MMM-voice has recognized: MIRROR THE WHO MIRROR

Is there have a way can update imtool or fixed the issue locally?

Having the exact same issue verbatim (on Ub16.04)...interestingly, I installed just 2 days ago on 18.04 without issue but reloaded due to not being able to get snowboy to install.
the lmools keeps throwing an error for the corpus file, regardless of encoding. Can you please just post the generated files? Nice easter egg, btw.

It doesn't make sense to upload those files, as they need to look different based on the modules you have installed. Did you try to download them from the link above? #34 (comment)

It doesn't make sense to upload those files, as they need to look different based on the modules you have installed. Did you try to download them from the link above? #34 (comment)

I had figured that due to the way you recommended to manually generate it, that it would be a static file. I guess it could be, until you add other modules.

I tired the method you outlined in the link above, that's what I was talking about with the corpus error. It kept failing no matter what text file I fed it.

I got the files from another user, now I get further (says "Ready" and "Undefined") so I am troubleshooting that bit.