All Projects → Kaljurand → Arvutaja

Kaljurand / Arvutaja

Licence: apache-2.0
An Android app for voice actions in Estonian and English

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Arvutaja

Vad
Voice activity detection (VAD) toolkit including DNN, bDNN, LSTM and ACAM based VAD. We also provide our directly recorded dataset.
Stars: ✭ 622 (+2121.43%)
Mutual labels:  speech-recognition
Eesen
The official repository of the Eesen project
Stars: ✭ 738 (+2535.71%)
Mutual labels:  speech-recognition
Speechpy
💬 SpeechPy - A Library for Speech Processing and Recognition: http://speechpy.readthedocs.io/en/latest/
Stars: ✭ 833 (+2875%)
Mutual labels:  speech-recognition
Speech Emotion Analyzer
The neural network model is capable of detecting five different male/female emotions from audio speeches. (Deep Learning, NLP, Python)
Stars: ✭ 633 (+2160.71%)
Mutual labels:  speech-recognition
Adapt
Adapt Intent Parser
Stars: ✭ 690 (+2364.29%)
Mutual labels:  speech-recognition
Sincnet
SincNet is a neural architecture for efficiently processing raw audio samples.
Stars: ✭ 764 (+2628.57%)
Mutual labels:  speech-recognition
Athena
an open-source implementation of sequence-to-sequence based speech processing engine
Stars: ✭ 542 (+1835.71%)
Mutual labels:  speech-recognition
Kaldi Gstreamer Server
Real-time full-duplex speech recognition server, based on the Kaldi toolkit and the GStreamer framwork.
Stars: ✭ 935 (+3239.29%)
Mutual labels:  speech-recognition
Annyang
💬 Speech recognition for your site
Stars: ✭ 6,216 (+22100%)
Mutual labels:  speech-recognition
Kur
Descriptive Deep Learning
Stars: ✭ 811 (+2796.43%)
Mutual labels:  speech-recognition
Speech recognition
Speech recognition module for Python, supporting several engines and APIs, online and offline.
Stars: ✭ 5,999 (+21325%)
Mutual labels:  speech-recognition
Wav2letter
Facebook AI Research's Automatic Speech Recognition Toolkit
Stars: ✭ 5,907 (+20996.43%)
Mutual labels:  speech-recognition
Stephanie Va
Stephanie is an open-source platform built specifically for voice-controlled applications as well as to automate daily tasks imitating much of an virtual assistant's work.
Stars: ✭ 772 (+2657.14%)
Mutual labels:  speech-recognition
Libreasr
💬 An On-Premises, Streaming Speech Recognition System
Stars: ✭ 633 (+2160.71%)
Mutual labels:  speech-recognition
Wavenet Stt
An end-to-end speech recognition system with Wavenet. Built using C++ and python.
Stars: ✭ 18 (-35.71%)
Mutual labels:  speech-recognition
Wenet
Production First and Production Ready End-to-End Speech Recognition Toolkit
Stars: ✭ 617 (+2103.57%)
Mutual labels:  speech-recognition
Pykaldi
A Python wrapper for Kaldi
Stars: ✭ 756 (+2600%)
Mutual labels:  speech-recognition
Rhasspy
Rhasspy voice assistant for offline home automation
Stars: ✭ 851 (+2939.29%)
Mutual labels:  speech-recognition
Assistant Client
Инструмент для тестирования и отладки СanvasApps c семейством Виртуальных Ассистентов "Салют"
Stars: ✭ 26 (-7.14%)
Mutual labels:  speech-recognition
Espresso
Espresso: A Fast End-to-End Neural Speech Recognition Toolkit
Stars: ✭ 808 (+2785.71%)
Mutual labels:  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:

  • Estonian
  • English

Currently supported expressions and commands:

  • measurement unit conversion expression
  • currency conversion expression
  • arithmetical expression
  • alarm clock / timer setting command
  • phone number
  • Estonian address query (only with Estonian language input)
  • Estonian weather query (only with Estonian language input)

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

  • device's built-in alarm clock app
  • device's built-in phone app
  • a maps app
  • a browser loading the WolframAlpha website

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.

  • v0.5+, requires Android v4+
  • v0.4, requires Android v1.6+ (not developed anymore)

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

Building from source

git clone --recursive [email protected]:Kaljurand/Arvutaja.git
cd Arvutaja
gradle assembleRelease

Features

  • No complex menus! Just a microphone button.
  • The history of query evaluation results is presented in a persistent list.
  • Support for vague/ambiguous queries (e.g. "viis norra krooni suures valuutas").
  • Clicking on a list item sends the query to a 3rd party app. This is mostly used for
    • map queries the result of which cannot be presented in the list;
    • currency conversion (which the internal evaluator does not support yet);
    • getting a "2nd opinion" (from e.g. Google Search or WolframAlpha).

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

  • using open source grammars (i.e. users can find out exactly which input phrases are supported),
  • not depending on any particular speech recognition server,
  • having an open source code.

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

  • a web browser;
  • an app that understands Google Maps' URLs (http://maps.google.com/maps?...);
  • an app that responds to the standard Android alarm clock intent (android.intent.action.SET_ALARM).

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

  • ärata mind (palun) viis minutit hiljem
  • ärata mind (palun) (kell) seitse null viis

Unitconv

  • sada meetrit sekundis kilomeetrites tunnis
  • kaks sada tuhat viis teist milli kraadi kraadides
  • kaks hektarit ruut kilo meetrites
  • kolm hektarit aakrites (ERROR: internal converter does not understad acre)
  • viis norra krooni vanas rahas (ERROR: internal converter does not understand NOK)

Examples of ambiguities

  • kaks minutit sekundites (ambiguous with 2 readings)
  • viis norra krooni suures valuutas (ambiguous with ~6 readings)

Expr

  • Pii korda miinus kaks jagatud pool teist
  • miinus üks miinus miinus kaks miinus miinus kolm ... (arbitrarily long query)
  • null astmel miinus üks (= Infinity)
  • miinus üks astmel pool (= NaN, the built-in math evaluator does not support complex numbers)
    • Note: Google and WolframAlpha interpret "-1^0.5" as "-(1^0.5)"
    • Note: WolframAlpha interprets "minus one to the power of half" as "(-1)^0.5"

Direction

  • Sõpruse puiestee sada kakskümmend kolm
  • Algus Sõpruse puiestee sada kakskümmend kolm Lõpp Vabaõhumuuseumi tee neli kümmend viis
  • Tartu

Examples of ambiguities

  • Roo (street in Tallinn vs village in Estonia)

Covered by multiple grammars (i.e. ambiguous)

  • Pii (PI vs village in Estonia)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].