Kaljurand / Arvutaja

An Android app for voice actions in Estonian and English
http://kaljurand.github.io/Arvutaja/
Apache License 2.0
29 stars 18 forks source link
android estonian speech-recognition

Arvutaja

Codacy Badge

Arvutaja (= the Estonian word for the one that computes) is a voice actions app for Android, i.e. it converts a spoken utterance in some natural language to an expression/command in some formal language and then evaluates/executes the formal expression.

Currently supported input languages:

Currently supported expressions and commands:

The expressions/commands are evaluated using an external app, such as

The arithmetical and measurement unit conversion expressions are also evaluated by Arvutaja itself.

Arvutaja uses grammar-based speech recognition and is largely defined by the Action-grammar developed in the separate Grammars-project (http://kaljurand.github.io/Grammars/). This grammar defines which input languages and expressions are supported.

Download

There are currently two versions of Arvutaja. They use the same underlying grammar but differ in their UIs and how they use the speech recognizer.

APK-packages for both versions are available via Google Play and GitHub Releases.

Building from source

git clone --recursive git@github.com:Kaljurand/Arvutaja.git
cd Arvutaja
gradle assembleRelease

Features

The main difference between Arvutaja and other intelligent assistant / voice actions apps like Google Now and Siri is that Arvutaja is largely defined by a human-readable multilingual grammar. Also, Arvutaja is open and modular by

Dependencies on other apps

For speech recognition, Arvutaja can technically use any Android speech recognizer (chosen via the Arvutaja settings). However, it is recommended to use Kõnele, a grammar-aware speech recognition service for Android. You have to install it separately from http://kaljurand.github.io/K6nele/, or from:

In order to execute some actions, Arvutaja expects the device to contain

In order to read back the input query, Arvutaja uses the system default text-to-speech (TTS) engine, setting it to the same language as the input query. Many TTS engines with support for different languages are available for Android. They can be installed e.g. via Google Play and set as system default in the Android language settings. An Estonian TTS engine for Android is available e.g. on http://heli.eki.ee/koduleht/index.php/rakendused ("HTS-sünteeshääl Androidile EKISpeak.apk"). (Note that EKISpeak.apk v1.0 does not support numbers in the digit form, e.g. "üks pluss kaks on 3" is not rendered to speech at all.) Two modifications (which do not fix the "digit" problem) of this app are:

Used libraries

Examples (Estonian)

Following is a list of some input examples, more can be found at http://kaljurand.github.io/Grammars/.

Alarm

Unitconv

Examples of ambiguities

Expr

Direction

Examples of ambiguities

Covered by multiple grammars (i.e. ambiguous)