summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Krisztian Litkey [Mon, 26 Aug 2013 08:12:04 +0000 (11:12 +0300)]
voice: add voice/text-to-speech API and a festival-based voice plugin.
This patch takes a first shot at adding voice rendering/text-to-speech
infra to the daemon. The basic API currently support
- registering voice rendering backends + a set of supported voices
- unregistering backends
- querying the set of available voices (for language, dialect, speaker
gender, age if known, and verbose voice description)
- requesting text-to-speech rendering using a given voice
- cancelling an ongoing or queued text-to-speech request
Rendering requests can also provide timeout/queuing preferences as
well as a rendering progress notification callback that can be used
to synchronize voice output with a traditional UI.
Note that, resource/policy integration for TTS is currently missing
altogether.
Also note that upstream libfestival (or more precisely the LISP
interpreter implementation of the Edinburgh speech tools libary) has
a bug which causes an immediate crash of any binary that is dynamically
linked against both libfestival and glibc. The actual bug is the leak
of the symbol 'backtrace' from slib.cc which collides with the backtrace
function of glibc. This symbol should have been declared static in slib
but was not. Because of the name collision, the dynamic linker resolves
it to the address of the function in glibc. In slib backtrace is an
ordinary read-write variable. Obviously bad things happen when slib tries
to change the value of that variable which now actually points to the
code segment of glibc.
The accompanying festival-loader plugin in this patch provides a kludge
to work around this problem without having to patch and recompile all
of festival/the speech tools library. Just load festival-loader before
attempting to load festival-voice and everything should work fine (with
fingers crossed).
Krisztian Litkey [Mon, 2 Sep 2013 12:00:23 +0000 (15:00 +0300)]
dbus-client: fix plugin copy-pastos.
Krisztian Litkey [Wed, 4 Sep 2013 18:57:29 +0000 (21:57 +0300)]
daemon: don't try to clean up the mainloop twice.
Krisztian Litkey [Thu, 29 Aug 2013 22:23:50 +0000 (01:23 +0300)]
daemon: detect running from the source tree, valgrind commandline option
The daemon now tries to detect if it is being run from the source
tree, and change its confguration file and plugin directory defaults
accordingly.
Additionally, the daemon now supports automatically adjusting its
environment (extending LD_LIBRARY_PATH) and re-execing itself under
valgrind if so requested.
Krisztian Litkey [Mon, 26 Aug 2013 07:48:34 +0000 (10:48 +0300)]
plugins: context now has pa_mainloop_api not pa_mainloop.
Krisztian Litkey [Mon, 26 Aug 2013 09:48:46 +0000 (12:48 +0300)]
recognizer: removed unreachable leftover effect code.
Krisztian Litkey [Fri, 23 Aug 2013 08:46:37 +0000 (11:46 +0300)]
wrt-media-client: honour bus address config setting.
Krisztian Litkey [Fri, 23 Aug 2013 08:45:56 +0000 (11:45 +0300)]
dbus-client: macroized config.
Krisztian Litkey [Thu, 22 Aug 2013 10:52:05 +0000 (13:52 +0300)]
build-sys: don't include AUTHORS, ChangeLog et al in install.
Krisztian Litkey [Thu, 22 Aug 2013 07:17:23 +0000 (10:17 +0300)]
misc: added a sample config file, script to run the daemon from the source tree.
Krisztian Litkey [Thu, 22 Aug 2013 06:56:05 +0000 (09:56 +0300)]
dictionaries: added basic demo dictionary.
Krisztian Litkey [Thu, 22 Aug 2013 06:02:53 +0000 (09:02 +0300)]
build-sys: fix plugindir typo.
Krisztian Litkey [Wed, 21 Aug 2013 18:03:14 +0000 (21:03 +0300)]
wrt-media-client: added WRT media player client plugin
This plugin, at least in its current primitive form, is only here
temporarily. It registers and relays media playback commands by
emitting a D-Bus signal to a corresponding WRT plugin that catches
the signal and fires JS events for it.
This should be replaced by properly relaying (and extending/changing
as needed) the client protocol to the WRT. Relaying can, but does
not need to use D-Bus. We can have a dedicated WRT-specific plugin
using any socket-based IPC and a private dedicated protocol, but
we also could have, for instance, websocket bindings for the client
protocol and use that from the WRT.
The key thing is that a proper publish/subscribe protocol should be
used, so that the client can get proper notifications about changes
in the state of voice recognition. Currently the WRT (media) client
is not a proper client and for instance it does not know if VR/its
voice focus is active at all.
Krisztian Litkey [Wed, 21 Aug 2013 17:58:34 +0000 (20:58 +0300)]
daemon: support running with pa_glib_mainloop/GMainLoop.
To allow *temporarily* plugins to use gdbus, we need to be able
to run with GMainLoop and consequently to use pa_glib_mainloop.
This is now possible by setting the configuration variable
'gmainloop' to true either in the config file or by passing
the -s gmainloop=true on the command line.
Krisztian Litkey [Wed, 21 Aug 2013 09:20:18 +0000 (12:20 +0300)]
recognizer: don't try to give and feedback if none is configured.
Krisztian Litkey [Tue, 20 Aug 2013 13:10:50 +0000 (16:10 +0300)]
build-sys: honour the --enable/disable-dbus command line option.
All components that depend on D-Bus are now disabled unless the
--enable-dbus option (and --enable-gpl that the former depends
on) is specified on the command line. Moreover, the client D-Bus
interace has been turned into a plugin, so the core does not depend
or know anything about D-Bus any more.
Note that after converting to a plugin the D-Bus client interface
has not been tested at all yet...
Krisztian Litkey [Tue, 9 Jul 2013 09:44:07 +0000 (12:44 +0300)]
sphinx-speech-plugin: memory corruption fix.
Krisztian Litkey [Sun, 9 Jun 2013 12:14:46 +0000 (15:14 +0300)]
build-sys: check and link against necessary murphy libraries.
Janos Kovacs [Thu, 6 Jun 2013 13:45:20 +0000 (16:45 +0300)]
input-plugin: new plugin to control activation/deactivation of 'sphinx-speech'
Janos Kovacs [Thu, 6 Jun 2013 13:44:32 +0000 (16:44 +0300)]
sphinx-speech-engine: implement actication/deactivation
Janos Kovacs [Thu, 6 Jun 2013 13:44:28 +0000 (16:44 +0300)]
sphinx-speech-plugin: fix option parsing to enable multiple decoder declarations
Krisztian Litkey [Thu, 6 Jun 2013 13:44:21 +0000 (16:44 +0300)]
speech-recognition: configurable feedback sounds/phrases.
Krisztian Litkey [Thu, 6 Jun 2013 13:44:16 +0000 (16:44 +0300)]
simple-disambiguator: mark unrecognized commands as such.
Krisztian Litkey [Thu, 6 Jun 2013 13:44:10 +0000 (16:44 +0300)]
speech-recognition: attempt to give voice feedback for unrecognized commands.
Krisztian Litkey [Thu, 6 Jun 2013 13:44:05 +0000 (16:44 +0300)]
speech-recognition: added a primitive voice-feedback API.
Janos Kovacs [Thu, 6 Jun 2013 13:44:01 +0000 (16:44 +0300)]
sphinx-speech-engine: fixes for puffer management (purging filter buffer)
Krisztian Litkey [Thu, 6 Jun 2013 13:43:57 +0000 (16:43 +0300)]
speech-recognition: make sure we flush the full buffer in case we want to give up.
Krisztian Litkey [Thu, 6 Jun 2013 13:43:53 +0000 (16:43 +0300)]
simple-disambiguator: ignore all but first candidate for now.
Krisztian Litkey [Thu, 6 Jun 2013 13:43:47 +0000 (16:43 +0300)]
search-client: minor logging adjustment.
Krisztian Litkey [Thu, 6 Jun 2013 13:43:43 +0000 (16:43 +0300)]
fake-speech-engine: more search test commands.
Krisztian Litkey [Thu, 6 Jun 2013 13:43:40 +0000 (16:43 +0300)]
simple-disambiguator: try to handle dictionary switch better at the end of a token stream.
Janos Kovacs [Thu, 6 Jun 2013 13:43:35 +0000 (16:43 +0300)]
sphinx-speech-engine: recursive processing of buffers to support dict switches
Krisztian Litkey [Thu, 6 Jun 2013 13:43:30 +0000 (16:43 +0300)]
search-client: take care of compilation warnings.
Janos Kovacs [Thu, 6 Jun 2013 13:43:27 +0000 (16:43 +0300)]
mpris2-client: add multi player support
Janos Kovacs [Thu, 6 Jun 2013 13:43:23 +0000 (16:43 +0300)]
mpris2-client: changed 'play [louder|quiter]' to 'volume [up|down]'
Janos Kovacs [Thu, 6 Jun 2013 13:43:19 +0000 (16:43 +0300)]
sphinx-speech-plugin: add support for multiple dictionaries
Krisztian Litkey [Thu, 6 Jun 2013 13:43:16 +0000 (16:43 +0300)]
fake-speech-engine: added fake commands for testing search.
Krisztian Litkey [Thu, 6 Jun 2013 13:43:12 +0000 (16:43 +0300)]
search-client: added a simple search client plugin.
Janos Kovacs [Thu, 6 Jun 2013 13:43:07 +0000 (16:43 +0300)]
bluetooth-client: strip 'siri' from the samples forwarded to BT device
Janos Kovacs [Thu, 6 Jun 2013 13:43:02 +0000 (16:43 +0300)]
sphinx-speech-engine: use samples instead of frames for token positions
Janos Kovacs [Thu, 6 Jun 2013 13:42:57 +0000 (16:42 +0300)]
bluetooth-client: avoid an infinite loop scenario
Janos Kovacs [Thu, 6 Jun 2013 13:42:53 +0000 (16:42 +0300)]
bleutooth-client: start to use the new audio buffer interface
Janos Kovacs [Thu, 6 Jun 2013 13:42:50 +0000 (16:42 +0300)]
sample buffer forwarding/handling by clients
Janos Kovacs [Thu, 6 Jun 2013 13:42:45 +0000 (16:42 +0300)]
sphinx-speech-engine: get back utterance id what we lost on the way
Janos Kovacs [Thu, 6 Jun 2013 13:42:40 +0000 (16:42 +0300)]
sphinx-speech-engine: permanently removing some commented out code
Janos Kovacs [Thu, 6 Jun 2013 13:42:35 +0000 (16:42 +0300)]
sphinx-speech-engine: forwarding real samples to BT clients
Janos Kovacs [Thu, 6 Jun 2013 13:42:30 +0000 (16:42 +0300)]
sphinx-speech-engine: implementing buffer duplication
Krisztian Litkey [Thu, 6 Jun 2013 13:42:26 +0000 (16:42 +0300)]
sphin-speech-engine: updated to use srs_audiobuf_t.
Krisztian Litkey [Thu, 6 Jun 2013 13:42:21 +0000 (16:42 +0300)]
bluetooth-client: updated to use srs_audiobuf_t.
Krisztian Litkey [Thu, 6 Jun 2013 13:42:18 +0000 (16:42 +0300)]
mpris2-client: updated to use srs_audiobuf_t.
Krisztian Litkey [Thu, 6 Jun 2013 13:42:13 +0000 (16:42 +0300)]
speech-recognition: updated nuance skeleton to use srs_audiobuf_t.
Krisztian Litkey [Thu, 6 Jun 2013 13:42:09 +0000 (16:42 +0300)]
fake-speech-engine: updated to use srs_audiobuf_t.
Krisztian Litkey [Thu, 6 Jun 2013 13:42:04 +0000 (16:42 +0300)]
speech-recognition: use a dedicated data type for passing audio samples around.
Krisztian Litkey [Thu, 6 Jun 2013 13:42:00 +0000 (16:42 +0300)]
fake-speech-engine: test command for wildcard matching 0 tokens.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:56 +0000 (16:41 +0300)]
simple-disambiguator: kludge to allow wildcard to match 0 tokens at the end.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:52 +0000 (16:41 +0300)]
fake-speech-engine: recalculate utterance length on rescan.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:47 +0000 (16:41 +0300)]
speech-recognition: make sure we always save the full audio buffer.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:36 +0000 (16:41 +0300)]
speech-recognition: get rid of most(ly unused variable) warnings.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:32 +0000 (16:41 +0300)]
bluetooth-client: adapted to API changes.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:27 +0000 (16:41 +0300)]
mpris2-client: adapted to API changes.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:24 +0000 (16:41 +0300)]
sphinx-speech-engine: adapted to API changes.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:20 +0000 (16:41 +0300)]
speech-recognition: adapted nuance skeleton to API changes.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:16 +0000 (16:41 +0300)]
simple-disambiguator: adapted to API changes.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:12 +0000 (16:41 +0300)]
fake-speech-engine: adapted to new API, fake dictionary switching, audio samples.
Krisztian Litkey [Thu, 6 Jun 2013 13:41:08 +0000 (16:41 +0300)]
speech-recognition: experimental dictionary switching, audio sample collecting.
Experimental dictionary switching now works with the fake backend.
Quite a horrible kludge (especially the re-entrancy handling), needs
a big cleanup. Audio samples are now collected and passed to the command
notification callbacks.
Janos Kovacs [Thu, 6 Jun 2013 13:41:03 +0000 (16:41 +0300)]
sphinx-speech-engine: cope with token variants
Strip \n from the end if any.
Janos Kovacs [Thu, 6 Jun 2013 13:41:00 +0000 (16:41 +0300)]
bluetooth-client: first version
Janos Kovacs [Thu, 6 Jun 2013 13:40:55 +0000 (16:40 +0300)]
indentation fixes
Janos Kovacs [Thu, 6 Jun 2013 13:40:50 +0000 (16:40 +0300)]
sphinx-speech-engine: prepare for coexstitence with bluetooth-client
both sphinx-speech-engine and bluetooth-client have similar
pulseaudio backends. This patch changes the log messages
and stream properties for the coexistence.
Krisztian Litkey [Thu, 6 Jun 2013 13:40:46 +0000 (16:40 +0300)]
speech-recognition: started working on dictionary switching support.
Krisztian Litkey [Thu, 6 Jun 2013 13:40:42 +0000 (16:40 +0300)]
speech-recognition: added autoregistration/focus to the test client.
Krisztian Litkey [Thu, 6 Jun 2013 13:40:37 +0000 (16:40 +0300)]
speech-recognition: token macros for dictionary operations.
Krisztian Litkey [Thu, 6 Jun 2013 13:40:25 +0000 (16:40 +0300)]
simple-disambiguator: minor bugfixes.
Krisztian Litkey [Thu, 6 Jun 2013 13:40:20 +0000 (16:40 +0300)]
fake-speech-engine: push more fake utterances for testing.
Krisztian Litkey [Thu, 6 Jun 2013 13:40:15 +0000 (16:40 +0300)]
srs-client: register a few more commands for testing.
Janos Kovacs [Thu, 6 Jun 2013 13:40:10 +0000 (16:40 +0300)]
mpris2-client: integrate basic voice commands
Krisztian Litkey [Thu, 6 Jun 2013 13:39:59 +0000 (16:39 +0300)]
mpris2-client: workaround for old D-Bus lacking DBusBasicValue.
Krisztian Litkey [Thu, 6 Jun 2013 13:39:54 +0000 (16:39 +0300)]
mpris2-client: update for modified client creation API.
Janos Kovacs [Thu, 6 Jun 2013 13:37:53 +0000 (16:37 +0300)]
mpris2-client: first version of the client
Janos Kovacs [Thu, 6 Jun 2013 13:37:49 +0000 (16:37 +0300)]
sphinx-speech-engine: tabulation (eliminating some extra spaces)
Krisztian Litkey [Thu, 6 Jun 2013 13:37:39 +0000 (16:37 +0300)]
speech-recognition: sample config update.
Krisztian Litkey [Thu, 6 Jun 2013 13:33:53 +0000 (16:33 +0300)]
speech-recognition: some small daemon hacks.
Krisztian Litkey [Thu, 6 Jun 2013 13:33:41 +0000 (16:33 +0300)]
fake-speech-engine: added commands to match the default client set.
Krisztian Litkey [Thu, 6 Jun 2013 13:33:27 +0000 (16:33 +0300)]
speech-recognition: first shot at a disambiguator.
Krisztian Litkey [Thu, 6 Jun 2013 13:33:07 +0000 (16:33 +0300)]
dbusif: deliver command notifications.
Janos Kovacs [Thu, 6 Jun 2013 13:32:55 +0000 (16:32 +0300)]
sphinx-speech-engine: deliver recognition notifications.
Janos Kovacs [Thu, 6 Jun 2013 13:32:45 +0000 (16:32 +0300)]
recognizer: next iteration of notification + plugin support for it
Krisztian Litkey [Thu, 6 Jun 2013 13:32:34 +0000 (16:32 +0300)]
fake-speech: updated to reflect utterance change.
Krisztian Litkey [Thu, 6 Jun 2013 13:32:24 +0000 (16:32 +0300)]
speech-recognition: utterance has a candidate pointer table.
Krisztian Litkey [Thu, 6 Jun 2013 13:32:11 +0000 (16:32 +0300)]
speech-recognition: strip triling spaces from config key value.
Krisztian Litkey [Thu, 6 Jun 2013 13:32:01 +0000 (16:32 +0300)]
sphinx-speech-engine: don't try to free dec->cfg, ps_free does it for us.
Krisztian Litkey [Thu, 6 Jun 2013 13:31:41 +0000 (16:31 +0300)]
sphinx-speech-engine: updated to revised backend/notify API.
Janos Kovacs [Thu, 6 Jun 2013 13:31:25 +0000 (16:31 +0300)]
sphinx-speech-engine: initial version of the real plugin
Janos Kovacs [Thu, 6 Jun 2013 13:30:59 +0000 (16:30 +0300)]
build: add sphinx support
Krisztian Litkey [Thu, 6 Jun 2013 13:27:51 +0000 (16:27 +0300)]
speech-recognition: iterating the backend/notify API.
Krisztian Litkey [Thu, 6 Jun 2013 13:27:27 +0000 (16:27 +0300)]
speech-recognition: added basic infrastructure.
Added the basic infra: daemon, client interface, DBUS client interface,
plugin interface, recognizer backend interface, a fake backend, skeletons
for a sphinx and nuance backend, and a command-line test client.
Krisztian Litkey [Thu, 6 Jun 2013 12:18:20 +0000 (15:18 +0300)]
build-sys: seeded repo for autotools based build.
Sakari Poussa [Tue, 4 Jun 2013 10:40:42 +0000 (03:40 -0700)]
Initial commit