GitHub page


What is ACIS?

ACIS stands for Advanced Communication and Interaction System and is a library written in Java which can be used for speech interaction. The design of the library allows interaction in a very natural way.
The ACIS library can be used to create a personal assistant like Google Home or Amazon Echo but it is on the programmers behalf how it behaves and what actions are provided.

Who is ACIS for?

The ACIS library is for people who want to do their own thing, who do not want to rely on the possibilities the other assitant manufacturers provide. Because the ACIS library handles everything locally, there are no security or privacy problems.
Of course a minimum knowledge in programming (Java) is required, but the library itself as well as the sample implementations should be easy to understand.

How does it work? (short version)

Basically any ACIS system consists of two main parts - a language-dependent and a language-independent part. Between these two parts is a standardized interface both can use. The language-dependent part is the language the system uses. It delivers language specific information e.g. about words and the sentence objects. The language-independent part uses this information to provide results, even while natural interaction. In fact, the ACIS library is applicable for any language. The only thing needed is a language interface (or use the unified language interface).

What does it take?

Basically only a computer capable of running Java programs is required to create something using the ACIS library. To create your own actions, a Java IDE is recommended.
To create a personal assistant you have no limits - the reference implementation is on a Raspberry Pi3 running Android Things but you can run it on anything. Just add what is needed - a microphone, a speaker, a sound card if needed, a display if you want, a temperature sensor or whatever you can imagine.

Where can I get it?

The code of ACIS is publicly available on my GitHub. It is published under MIT license. If you do not want to clone the repository, a pre-built .jar file is in the root of the master branch.

Get started

coreThe core system.
serverA simple HTTP server which can be used to interact with a device.
utilsContains common utilities used by other packages.
languagesContains some language interfaces for ACIS. The Unified language interface can be used with any language. Note: German and English are available in high-quality mode. Please contact me if you want to contribute a language interface.
samplesContains samples, code snippets and implementation examples. An Android client app which can be used to send requests to the default server interface provided by the SampleRequestHandler can be found here.

A pre-built .jar file is in the root of the master branch.

Samples and tutorials

Whole library documentation