mozilla / smarthome Goto Github PK
View Code? Open in Web Editor NEWThis project forked from eclipse-archived/smarthome
INACTIVE - Eclipse SmartHome project
License: Eclipse Public License 1.0
This project forked from eclipse-archived/smarthome
INACTIVE - Eclipse SmartHome project
License: Eclipse Public License 1.0
An AudioFormat
can have null
values for various properties, for example bigEndian
to indicate that any value is acceptable. Such an AudioFormat
is abstract. An AudioFormat
that has no such null
values is concrete.
Now, the method TTSService::getSupportedFormats()
can return a set
that contains one or more abstract AudioFormat
instances. Also, the method TTSService::synthesize()
requires a concrete AudioFormat
. Thus, VaaniOrchestrator.java:152 is in error as it possibly assigns an abstract AudioFormat
to audioFormat
which is not able to be passed to TTSService::synthesize()
.
This problem appears when using the TTSServiceMacOS
in the VaaniOrchestrator
.
AudioFormat.isCompatible()
and AudioFormat.equals()
use ==
and not equals()
. So they compare memory locations not value. They should be switched to use equals()
.
Due to legal restrictions MaryTTS
will have to live in openhab2-addons
and not in smarthome
.
In particular we should create a voice
folder in openhab/openhab2-addons/tree/master/addons
and move it to there.
A Kaldi STT connection to the server can be closed by the client or the server.
The current implementation handles the case in which the client closes the
connection correctly, but not the case in which the server closes it.
The code should be changed to handle both cases.
Without installing Pocketsphinx by-hand all KSServicePocketsphinx
tests fail as KSServicePocketsphinx
is unable to be instantiated. The test log is full with errors of the form
!ENTRY org.eclipse.equinox.ds 4 0 2016-04-17 13:41:34.986
!MESSAGE Exception occurred while creating new instance of component Component[
name = org.eclipse.smarthome.io.voice.ksservice
activate = activate
deactivate = deactivate
modified =
configuration-policy = optional
factory = null
autoenable = true
immediate = true
implementation = org.eclipse.smarthome.io.voice.internal.KSServicePocketsphinx
state = Unsatisfied
properties = {os=any}
serviceFactory = false
serviceInterface = [org.eclipse.smarthome.io.voice.KSService]
references = null
located in bundle = org.eclipse.smarthome.io.voice_0.8.0.201604171136 [84]
]
!STACK 0
java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.smarthome.io.voice.internal.KSServicePocketsphinx
at sun.reflect.GeneratedConstructorAccessor14.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.createInstance(ServiceComponent.java:493)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.createInstance(ServiceComponentProp.java:270)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:331)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:458)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:914)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.setProperties(ServiceRegistrationImpl.java:168)
at org.eclipse.equinox.internal.app.EclipseAppDescriptor.refreshProperties(EclipseAppDescriptor.java:124)
at org.eclipse.equinox.internal.app.EclipseAppContainer.refreshAppDescriptors(EclipseAppContainer.java:470)
at org.eclipse.equinox.internal.app.EclipseAppContainer.unlock(EclipseAppContainer.java:540)
at org.eclipse.equinox.internal.app.EclipseAppHandle.setAppStatus(EclipseAppHandle.java:162)
at org.eclipse.equinox.internal.app.EclipseAppHandle.setInternalResult(EclipseAppHandle.java:230)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:202)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
@andrenatal can you take a look at this? My guess is that all the lib paths are incorrect and you didn't notice as you have pocketsphinx installed in the standard location.
Someone randomly deleted TTSServiceMacOS.xml
When creating the disto build the trailing spaces of build.properties
causes the classpath to be set incorrectly. Thus the trailing spaces
should be removed
VaaniOrchestrator
seems to not always be a singleton. Thus it sometimes occurs that multiple TTS acts are occurring simultaneously which would not occur if VaaniOrchestrator
were a singleton.
Hence, using OSGI constructs, VaaniOrchestrator
must be made a singleton.
When we have an item written with both lower and uppercase letters, the regex splits the array in every uppercase occurrence.
For example, for the word: "WeMo Switch", the array will be: [We,Mo,,Switch]
But if the word has only lowercases "wemo switch", it splits correctly, and the array will be [ wemo, switch]
It seems as if there are new Mac OS voices returned from say -v ?
that are not correctly parsed by the parsing code in VoiceMacOS
. The parsing code in VoiceMacOS
should be updated for these new voices.
Create VaaniOrchestrator test
In the bundles
xtext source code generation does not occur when using maven builds.
This manifests itself as a failure when xtend code generation occurs as the classes that would have been generated during xtext generation are not there and as a result the xtend code generation fails.
The license of smarthome prevents LGPL code from being included, and as the Kaldi STTService implementation uses net-speech-api which is LGPL, the Kaldi STTService implementation can not live in smarthome.
The new OS X
TTSService
implementation should be moved to
extensions/voice/org.eclipse.smarthome.voice.mactts
where the old implementation currently lives and the bundle
extensions/voice/org.eclipse.smarthome.voice.mactts
should be re-enabled in .travis.yml
If one adds a SONOS player and calls it "music player"
with a channel "Control"
one finds the interpreter does not know about the "music player".
For example here is evidence form the OSGI command line
osgi> smarthome interpret play music player
There is no object named like that.
However, one does find an Item named "Control"
osgi> smarthome interpret play Control
Ok.
which causes the SONOS player to play.
So, it seems as if the interpreter is using a channel as an item.
PS: Peeking a bit at the code I found that the "music player" does appear as an item but the item is a group and this item-group does not accept the play/pause command type.
The method VaaniOrchestrator.sttEventReceived()
calls STTServiceHandle.abort()
to stop the STT server from sending more results.
However, as the STT server is in another thread, the call to STTServiceHandle.abort()
and the STT server actually aborting are separated in time. Thus, is may occur that the after the call to the method STTServiceHandle.abort()
and before the STT server aborts the STT server sends one or more SpeechRecognitionEvent
instances to the client.
Currently if this happens several TTS actions are taken, more-or-less, in parallel and several spotting calls are also made, more-or-less, in parallel. This leads to a bit of chaos. The goal of this bug is to remove the chaos.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.