Hi,
thanks first of all for this awesome piece of work.
I'm currently using openhab 1.3.1 on Debian wheezy 7.2 with openjdk-6-jre and alsa enabled.
When using the marytts addon I ran into the problem that no local speech output was possible on the server running openhab:
In the openhab log (with default debug settings) I discovered that the following LineUnavailableException occurs after a say(..) commands either issued directly on the osgi console or during a Startup rule:
18:48:55.475 DEBUG o.o.m.r.i.engine.RuleEngine[:277] - Executing startup rule 'Startup'
18:49:06.476 INFO d.dfki.lt.tools.tokenizer.JTok[:146] - loading language resources for en from jtok/en
18:49:06.654 INFO d.dfki.lt.tools.tokenizer.JTok[:146] - loading language resources for de from jtok/de
18:49:09.760 INFO d.dfki.lt.tools.tokenizer.JTok[:146] - loading language resources for en from jtok/en
18:49:14.244 DEBUG o.o.i.m.i.t.TTSServiceMaryTTS[:95] - Mary TTS: Haussteuerung aktiviert. Openhab 1.3.1. (Voice not set. Using default voice bits1-hsmm).
javax.sound.sampled.LineUnavailableException
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openImpl(PulseAudioMixer.java:714)
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openLocal(PulseAudioMixer.java:588)
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openLocal(PulseAudioMixer.java:584)
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.open(PulseAudioMixer.java:579)
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:94)
at org.classpath.icedtea.pulseaudio.PulseAudioSourceDataLine.open(PulseAudioSourceDataLine.java:75)
at org.classpath.icedtea.pulseaudio.PulseAudioSourceDataLine.open(PulseAudioSourceDataLine.java:90)
at marytts.util.data.audio.AudioPlayer.run(AudioPlayer.java:206)
I checked that alsa sound is working on the system without problems:
# alsamixer
# aplay /usr/share/sounds/alsa/Front_Left.wav
and I was able to hear the respective sound file on the line out port.
MaryTTS seems to work well looking at the logs:
2013-11-09 18:48:57,778 [FolderObserver] INFO marytts.main Mary starting up...
2013-11-09 18:48:57,786 [FolderObserver] INFO marytts.main Specification version 5.1-SNAPSHOT
2013-11-09 18:48:57,787 [FolderObserver] INFO marytts.main Implementation version unknown
2013-11-09 18:48:57,787 [FolderObserver] INFO marytts.main Running on a Java 1.7.0_25 implementation by Oracle Corporation, on a Linux platform (i386, 3.2.0-4-686-pae)
2013-11-09 18:48:58,176 [FolderObserver] INFO marytts.ModuleRegistry Now initiating mary module 'marytts.modules.Synthesis'
2013-11-09 18:48:58,187 [FolderObserver] INFO marytts.ModuleRegistry Now initiating mary module 'marytts.modules.TextToMaryXML'
2013-11-09 18:48:58,191 [FolderObserver] INFO marytts.ModuleRegistry Now initiating mary module 'marytts.modules.SableParser'
...
2013-11-09 18:49:15,471 [FolderObserver] INFO marytts.PStream Gradient GV optimization for feature: (4) number of iterations=56
2013-11-09 18:49:15,474 [FolderObserver] INFO marytts.R 1 Request processed in 1219 ms.
2013-11-09 18:49:15,474 [FolderObserver] INFO marytts.R 1 TextToMaryXML took 1 ms
2013-11-09 18:49:15,474 [FolderObserver] INFO marytts.R 1 JTokeniser took 2 ms
2013-11-09 18:49:15,474 [FolderObserver] INFO marytts.R 1 Preprocess took 12 ms
2013-11-09 18:49:15,474 [FolderObserver] INFO marytts.R 1 OpenNLPPosTagger took 24 ms
2013-11-09 18:49:15,474 [FolderObserver] INFO marytts.R 1 JPhonemiser_de took 117 ms
2013-11-09 18:49:15,474 [FolderObserver] INFO marytts.R 1 Prosody took 66 ms
2013-11-09 18:49:15,475 [FolderObserver] INFO marytts.R 1 PronunciationModel took 15 ms
2013-11-09 18:49:15,475 [FolderObserver] INFO marytts.R 1 AcousticModeller took 410 ms
2013-11-09 18:49:15,475 [FolderObserver] INFO marytts.R 1 Synthesis took 567 ms
Does anyone know how to debug further to see why the LineUnavailableException is thrown by the JVM? (I cannot find any process blocking access to the audio line..)
Any help on this is appreciated.
Thanks in advance
A.