Movi

A library for communicating with the Audeme MOVIā„¢ Voice Control Shield. Be sure to read the documentation provided by Audeme here

Installation

1. git clone https://github.com/NationalAssociationOfRealtors/movi.git
2. mix do deps.get, deps.compile
3. iex -S mix

Usage

View the Client API in Movi.Client you have access to the whole Low Level interface provided by MOVI Serial interface. All events are broadcast over Movi.Client.Events

Some usage examples

Assign a callsign

iex(1)> Movi.Client.callsign("Elixir")
:ok
iex(2)>
16:37:07.799 [debug] Event: %Movi.Event{code: 213, message: ["New", "callsign", "trained."]}

16:37:13.603 [debug] Event: %Movi.Event{code: 112, message: ["The", "call", "sign", "is:", "ELIXIR"]}

16:37:13.627 [debug] Event: %Movi.Event{code: 105, message: ["READY"]}

Add sentence

iex(6)> Movi.Client.addsentence("turn lights on")
:ok
iex(7)>
16:39:14.370 [debug] Event: %Movi.Event{code: 211, message: ["Sentence", "added", "to", "cache."]}

Train sentence

iex(9)> Movi.Client.trainsentences()
:ok
iex(10)>
16:41:26.138 [debug] Event: %Movi.Event{code: 212, message: ["Sentences", "trained."]}

16:41:31.872 [debug] Event: %Movi.Event{code: 112, message: ["The", "call", "sign", "is:", "ELIXIR"]}

16:41:31.896 [debug] Event: %Movi.Event{code: 105, message: ["READY"]}

Say Sentence

iex(13)> Movi.Client.say("Elixir is awesome")
:ok
iex(14)>
16:42:14.039 [debug] Event: %Movi.Event{code: 150, message: ["SPEAKING"]}

16:42:16.323 [debug] Event: %Movi.Event{code: 151, message: ["END", "SPEAKING"]}

Events for incoming speech recognition

iex(1)>
16:45:17.474 [debug] Event: %Movi.Event{code: 200, message: ["CALLSIGN", "DETECTED"]}

16:45:17.936 [debug] Event: %Movi.Event{code: 140, message: ["ACTIVELISTEN"]}

16:45:20.671 [debug] Event: %Movi.Event{code: 141, message: ["END", "ACTIVELISTEN"]}

16:45:21.277 [debug] Event: %Movi.Event{code: 201, message: ["TURN", "LIGHTS", "ON"]}

16:45:21.476 [debug] Event: %Movi.Event{code: 202, message: ["#0"]}