Read the statement by Michael Teeuw here.
Yet Another Voice Module (Sphinx + Alexa)
-
I had done that step when I installed. I checked again, and Alexa is working when I execute the last step of the installation process (the one that has to open three different terminals and then the Alexa opens).
As I said, I’m new with Linux, so probably I configured it with something missing or wrong. My config.js is this way:
{ module: 'magic-mirror-voice', header: 'Magic Mirror Voice', position: 'top_right', config: { debug: true, alexa: { productId: 'MagicMirrorEmmanuel', dsn: 'MagicMirrorEmmanuel' }, ssl: { sslCaCert: './magic-mirror-voice/alexa-certificate-generator/certs/ca/ca.crt', sslKey: './magic-mirror-voice/alexa-certificate-generator/certs/server/node.key', sslCert: './magic-mirror-voice/alexa-certificate-generator/certs/server/node.crt', sslClientKeyStore: './magic-mirror-voice/alexa-certificate-generator/certs/client/client.pkcs12', sslClientKeyStorePassphrase: '' }, companion: { port: 3000, serviceUrl: 'https://localhost:3000', redirectUrl: 'https://localhost:3000/authresponse', clientId: 'MY PRIVATE CLIENT ID', clientSecret: 'MY PRIVATE CLIENT SECRET' }, client: { alpnVersion: '1.0.2', vlcPath: '/usr/lib/vlc', vlcPluginPath: '/usr/lib/vlc/plugins' }, sphinx: { commands: { "mirror mirror": { action: 'alexa' } }, dictionary: './commands.dic', // Optional model: './commands.lm' // Optional } } },
I’m not sure about the alpnVersion, vlcPath and vlcPluginPath, because I do not know where and how to find it. The dsn line as well, where do I find it?
I already changed ports as discussed here before, but did not work.Thanks!
-
@lb-rezende said in Yet Another Voice Module (Sphinx + Alexa):
I’m not sure about the alpnVersion,
Verify your java version by running
java -version
then you should be able to look up the ALPN here. Your version looks incorrect so maybe this is your issue.vlcPath and vlcPluginPath,
Check the docs here, but it should boil down to running
whereis vlc
. The values you provided look correct for a default setup.because I do not know where and how to find it. The dsn line as well, where do I find it?
I don’t think you need to worry about this. It’s part of the automated cert generation and the communication between the OAuth NodeJS server and the Alexa Java application. IIRC this can be any value.
-
@whyjustin said in Yet Another Voice Module (Sphinx + Alexa):
commands: { "mirror mirror": { action: 'alexa' } },
If you edit the above you can adjust the activation of Alexa. Haven’t spent much time with this project recently but IIRC you have to remove sphinx-model-generator/commands.dic and sphinx-model-generator/commands.lm when changing the commands
@whyjustin Yeah thats it. Do i need to record a new training file to replace those or where did the original one come from?
-
I followed this doc that you linked and it has more details than the original readme file that I used, when I used the automated installation. The problem now is that Maven is no longer working. I receive the following message:
-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
Any idea how to solve it?
-
@clumsy_ninja said in Yet Another Voice Module (Sphinx + Alexa):
@whyjustin Yeah thats it. Do i need to record a new training file to replace those or where did the original one come from?
The plugin will automatically generate your models and dictionary on startup using the JSON property names (e.g. “mirror mirror”) if the sphinx-model-generator/commands.dic and sphinx-model-generator/commands.lm are missing. So remove those files, adjust the JSON, then start the plugin again. You can also manually edit the commands.lm and commands.dic files after they are automatically generated if you are comfortable with language modeling.
-
@lb-rezende said in Yet Another Voice Module (Sphinx + Alexa):
-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
I would verify your Maven installation. Is $M2_HOME set? If so you can
-Dmaven.multiModuleProjectDirectory=$M2_HOME
although this should be the default behavior. -
@whyjustin said in Yet Another Voice Module (Sphinx + Alexa):
-Dmaven.multiModuleProjectDirectory=$M2_HOME
Where do I set the $M2_HOME (and how)? I just created the maven.sh file as described in the tutorial and included the two lines. I inserted this line that you suggested in the same file, maven.sh, but did not work.
Is there a way to uninstall those applications and do all over again? -
@lb-rezende said in Yet Another Voice Module (Sphinx + Alexa):
Where do I set the $M2_HOME (and how)?
Looks like the
$M2_HOME
is set in the scriptexport M2_HOME=/opt/apache-maven-3.3.9
If the script resides in
/etc/profile.d/
then it should run during boot (have you restarted your pi at all?).Is there a way to uninstall those applications and do all over again?
Easiest would be to nuke the entire thing and start over. TBH these are linux questions and I’m very happy to support my plugin but they seem beyond the scope of that. I’ll try my best to help but may not be able to provide support on every question.
-
Thanks for your help. I formatted the SD card and installed all over again, but it has something that does not work.
I have Alexa working, I used the following guide:
https://github.com/alexa/alexa-avs-sample-app/wiki/Raspberry-PiSo, following the README of your module, I have the following:
VLC:VLC media player 2.2.1 Terry Pratchett (Weatherwax) (revision 2.2.1-0-ga425c42)
JAVA
java version “1.8.0_111”
Java™ SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot™ Client VM (build 25.111-b14, mixed mode)
javac 1.8.0_111So ALPN is configured to 8.1.0.v20141016 (1.8.0u11 OpenJDK version)
MAVEN
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: “linux”, version: “4.4.35-v7+”, arch: “arm”, family: “unix”I configured config.js with the following sets and after that executed npm install in the module directory:
{ module: 'magic-mirror-voice', header: 'Magic Mirror Voice', position: 'top_right', config: { debug: true, alexa: { productId: 'my_device', dsn: '1xxxxxxxxxx' }, ssl: { sslCaCert: '', sslKey: '', sslCert: '', sslClientKeyStore: '', sslClientKeyStorePassphrase: '' }, companion: { port: 3000, serviceUrl: 'https://localhost:3000', redirectUrl: 'https://localhost:3000/authresponse', clientId: '.MY PRIVATE KEY', clientSecret: 'MY PRIVATE KEY' }, client: { alpnVersion: '8.1.0.v20141016', vlcPath: '/usr/lib/vlc', vlcPluginPath: '/usr/lib/vlc/plugins' }, sphinx: { commands: { "mirror mirror": { action: 'alexa' } }, dictionary: './commands.dic', // Optional model: './commands.lm' // Optional } } },
I removed the ssl optional configuration, the port is the same that is configured at the amazon developer site, the clientId and clientSecret are correct (I removed here), the ALPN version is the same of Java and the vlc address is correct, so it should be working, but I receive the following message:
Whoops! There was an uncaught exception…
TypeError: parser.close is not a function
at SAXStream.openf1 (/home/pi/MagicMirror/node_modules/feedme/lib/xmlfeedparser.js:107:14)
at emitOne (events.js:96:13)
at SAXStream.emit (events.js:188:7)
at Object.me._parser.(anonymous function) [as onopentag] (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:258:17)
at emit (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:640:35)
at emitNode (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:645:5)
at openTag (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:841:5)
at Object.write (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:1318:13)
at SAXStream.write (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:239:18)
at yoshi.write (/home/pi/MagicMirror/node_modules/feedme/lib/feedme.js:41:14)
at IconvLiteDecoderStream.ondata (_stream_readable.js:555:20)
at emitOne (events.js:96:13)
at IconvLiteDecoderStream.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at IconvLiteDecoderStream.Readable.push (_stream_readable.js:134:10)
at IconvLiteDecoderStream.Transform.push (_stream_transform.js:128:32)
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/issuesDo you have any idea of what is happening?
-
@lb-rezende said in Yet Another Voice Module (Sphinx + Alexa):
Whoops! There was an uncaught exception…
TypeError: parser.close is not a functionDo you have any idea of what is happening?
Looking through the stack trace it looks like this is unrelated to my plugin.