Pocketvox is listening you!

We are pleased to announce a release of Pocketvox, a voice control project for Linux desktop.

What is Pocketvox ?

Pocketvox is a desktop application and a development library written in C and created by Benoit Franquet, a french newly graduated engineer, visually impaired and passionated by desktop accessibility and application development.

Pocketvox is based on several well known open source libraries such as Sphinxbase, Pocketsphinx, GStreamer, GLib-2.0, GObject-2.0, Gtk+, ... from the GNOME project, Espeak to make Pocketvox respond with voice and Xlib to detect the focused window.

Pocketvox comes with several tools in order to make both developers and desktop users able to create or use voice controlled applications.

Pocketvox for desktop users

For the desktop, Pocketvox comes with:

- A menu launcher to launch the pocketvox application
- A panel applet to manage Pocketvox
- A configuration GUI and its launcher in the menu
- A common way to store the configuration using GSettinsgs
- A way to choose the micro input
- A way to send commands over TCP
- An activation keyword in order to start actions when you say a specific word
- A very flexible way to manage modules

Pocketvox for developers

For developers, Pocketvox provides:

- A .pc file to develop with Pocketvox
- A Python interface
- A very easy way to design your own module in Python

Python interface has been built using the GObject introspection, a very basic example is available on the Github page of the project.

Some addons Pocketvox comes with

Pocketvox has been build in order to use a system of module. Why ? Because, this allow desktop users to define and create very rapidly new modules only by writing a dictionnary file with a very simple structure like this:

open my documents=xdg-open ~/Documents
open my images=xdg-open ~/Images

Moreover, thanks to this structure users are able to associate a specific application to a module. When pocketvox is running then it will detect the focused application and execute commands listed in the module's dictionnary file.

Besides somes bash scripts have been integrated to the Pocketvox project in order to make users able to rapidly create a custom language model using the cmuclmtk toolkit.

Pocketvox is working out of the box using language models, acoustic models and dictionaries available on our website.

Pocketvox is ready for translation and already available in French and English. All steps to translate it are available on the Pocketvox repository on Github. Pocketvox is waiting for you to make it available in other language.

How to get Pocketvox ?

You can find all informations to try Pocketvox on the Github's page of the project.

The first release has been published yesterday, so you can get it here.

A way to make the world accessible

We recently got information about CDRV project, a great effort to make the word more accessible.

CDRV (“Device Controller by Speech Recognition” in spanish) is a device which can control a lift chair using voice commands. The purpose of this project is to help people with mobility problems such as disabilities or old people who are not able to use their hands to control the lift chair. The hardware of the CDRV consists on an overclocked Raspberry Pi model B and an extension board developed to control the motors of the lift chair, a Wi-Fi dongle, an external manual control and a Logitech USB microphone. The operative system used has been developed with Buildroot and runs in RAM completely so it is possible to turn off the power without shutting down the OS. The extension board has been developed with KiCAD and the plastic box has been designed entirely with OpenSCAD and printed with a Prusa i3 RepRap. The offline speech recognition software that runs into the Raspberry Pi is the C implementation of CMUSphinx: pocketsphinx. It uses the spanish acoustic model provided by the CMUSphinx community and a slightly modified version of the application pocketsphinx_continuous to perform a command and control task. A language model with approximately 25 common words behaves like a garbage model. No kind of confidence measures are computed.

CDRV is continuously listening for the utterance “Lift Chair Activation” (“Activación Sillón”, actually). Once this command is recognized, it produces a confirmation beep. Then, it waits for some seconds searching for the actions “Up” (Sube) or “Down” (Baja). If any of these actions is recognized, the lift chair will be activated accordingly. If not, a desactivation beep will be emitted. Anytime, the command “Stop” (Para) will turn off the lift chair motors.

The device has been tested with real users in real situations achieving very good results. Some exceptional users, due to it’s particular phonetics, are not properly recognized but in general, the device reacts only when the correct words are pronounced even with a close loud television. In the video below you can find a short demonstration of the device.

This project is being developed for a non profit organization called CVI (Center of independent living). The non profit ONCE foundation is funding the project and the UPC university provides tech support.

Pocketsphinx Ruby Is available on Github

We are pleased to announce the availability of the Ruby bindings for pocketsphinx created by Howard Wilson.


pocketsphinx-ruby is a high-level Ruby wrapper for the pocketsphinx C API. It uses the Ruby Foreign Function Interface (FFI) to directly load and call functions in libpocketsphinx, as well as libsphinxad for recoding live audio using a number of different audio backends.

The goal of the project is to make it as easy as possible for the Ruby community to experiment with speech recognition, in particular for use in grammar-based command and control applications. Setting up a real time recognizer is as simple as:

configuration = Pocketsphinx::Configuration::Grammar.new do
  sentence "Go forward ten meters"
  sentence "Go backward ten meters"
end

Pocketsphinx::LiveSpeechRecognizer.new(configuration).recognize do |speech|
  puts speech
end

This library supports Ruby MRI 1.9.3+, JRuby, and Rubinius. It depends on the current development versions of Pocketsphinx and Sphinxbase - there are Homebrew recipes available for a quick start on OSX.

LIUM releases TEDLIUM corpus version 2

LIUM team, the main CMUSphinx contributor, has announced today the release of TEDLIUM corpus version2, an amazing database prepared from transcribed TED talks

http://www-lium.univ-lemans.fr/en/content/ted-lium-corpus

A details on this update could be found in corresponding publication:

A. Rousseau, P. Deléglise, and Y. Estève, "Enhancing the TED-LIUM Corpus with Selected Data for Language Modeling and More TED Talks", in Proceedings of the Ninth International Conference on Language Resources and Evaluation (LREC’14), May 2014.

This database of 200 hours of speech allows you to build a speech recognition system with very good performance with open source toolkits like Kaldi or CMUSphinx. A Kaldi recipe for TEDLIUM v1, is available in the repository and we hope that the update to TEDLIUM v2 will be available soon.

Modern technology like automatic alignment of transcribed audio made it easy to create very competitive databases, so it's easy to predict that the size of the available databases will quickly grow to thousands of hours and thus we will see a very significant improvement in accuracy of the open source recognition. The problem comes here that quite powerful training clusters will be required to work with such databases, it is not possible to train model on a single server in acceptable amount of time.