- Platform information:
- Hardware: Raspberry Pi 3 b+
- OS: Docker on raspbian stretch lite
- openHAB version:openHAB 2.5.0.M3 Milestone Build
- Issue of the topic:
I run openhab in a docker container on my RPi 3 b+. I wanted to add local voice control so added a microphone and speaker to the RPi and installed Snips-ai on the same RPi. This much works well for me till now. Now I want to add “picotts” to speak out sentences from the connected speaker output. So I installed the addon named “picotts” and in the rules, added the command say as below:
rule "Snips"
when
Item SnipsIntent received update
then
var String sessionId = transform("JSONPATH", "$.sessionId", SnipsIntent.state.toString);
sessionId = "{ \"sessionId\":\""+ sessionId + "\" }"
val actions = getActions("mqtt","mqtt:broker:brokerthingid")
actions.publishMQTT("hermes/dialogueManager/endSession",sessionId)
say("Hi! this is a voice test");
end
The rest of the rule runs well(except the say command), but no speech comes out of the speaker. In the logs following error is thrown
2019-09-18 12:50:30.374 [WARN ] [core.voice.internal.VoiceManagerImpl] - Error saying ‘Hi! this is a voice test’: org.eclipse.smarthome.core.audio.AudioException$
org.eclipse.smarthome.core.voice.TTSException: org.eclipse.smarthome.core.audio.AudioException: Error while executing '[Ljava.lang.String;@8a0$
at org.openhab.voice.picotts.internal.PicoTTSService.synthesize(PicoTTSService.java:73) ~[?:?]
at org.eclipse.smarthome.core.voice.internal.VoiceManagerImpl.say(VoiceManagerImpl.java:219) ~[?:?]
at org.eclipse.smarthome.model.script.actions.Voice.say(Voice.java:121) ~[?:?]
at org.eclipse.smarthome.model.script.actions.Voice.say(Voice.java:40) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: org.eclipse.smarthome.core.audio.AudioException: Error while executing ‘[Ljava.lang.String;@8a087a’
at org.openhab.voice.picotts.internal.PicoTTSAudioStream.createInputStream(PicoTTSAudioStream.java:64) ~[?:?]
at org.openhab.voice.picotts.internal.PicoTTSAudioStream.(PicoTTSAudioStream.java:45) ~[?:?]
at org.openhab.voice.picotts.internal.PicoTTSService.synthesize(PicoTTSService.java:71) ~[?:?]
… 31 more
Caused by: java.io.IOException: Cannot run program “pico2wave”: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[?:?]
at java.lang.Runtime.exec(Runtime.java:621) ~[?:?]
at java.lang.Runtime.exec(Runtime.java:486) ~[?:?]
at org.openhab.voice.picotts.internal.PicoTTSAudioStream.createInputStream(PicoTTSAudioStream.java:58) ~[?:?]
at org.openhab.voice.picotts.internal.PicoTTSAudioStream.(PicoTTSAudioStream.java:45) ~[?:?]
at org.openhab.voice.picotts.internal.PicoTTSService.synthesize(PicoTTSService.java:71) ~[?:?]
… 31 more
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method) ~[?:?]
at java.lang.UNIXProcess.(UNIXProcess.java:247) ~[?:?]
Am I missing some vital steps or has it something to do with the docker install of openhab(which I am using) or maybe due to it being a milestone build???