Nailik / rhasspy_mobile

Rhasspy is a voice assistant software. This repository implements the functionality of a Rhasspy satellite, with local wake word recognition.
65 stars 4 forks source link
android kotlin-multiplatform voice-assistant

Rhasspy mobile

This is a Rhasspy satellite on a mobile phone. The original idea is from rhasspy-mobile-app. The latest Version can be found on the PlayStore or in Releases.

Supported Devices

The project uses Kotlin Multiplatform Mobile which supports a lot of platforms but is not implemented on each platform yet.

Platform Support
Android Android 6.0 (API level 24)
iOS Not yet planned
Other Open a discussion if your interested

Contribution

Check out the project Board for open tasks, open a discussion or create your own pull-request. I am also happy for any feedback.

Getting Started

For setup of server and satellite configuration check the official documentation of Rhasspy.

Main features

Feature Description
Local Wake Word Uses Porcupine to enable local wake-word processing
Background Service Allows to run the app continuously in Background, listening for wake word and processing audio.
Microphone Overlay and Widget Quick access to voice commands without using a wake-word.
Indication Indicate different Rhasspy states
  • Wake up display when wake-word is detected
  • Sound indication like Rhasspy
  • Overlay animation
Automatic local silence detection Stop recording audio when silence is detected with custom audio level.
Test configuration Test Rhasspy configuration while editing to simpler setup everything correctly.
Save and restore settings Don't loose the Satellite configuration.
Local Webserver Hosts Hermes api to send commands to Rhasspy Satellite.
Intent Start Recording via Intent.
adb shell am start -a android.intent.action.MAIN -n org.rhasspy.mobile.android/org.rhasspy.mobile.app.MainActivity --ez START_RECORDING 1
Broadcast To Start Recording without launching app.
adb shell am broadcast -n org.rhasspy.mobile.android/org.rhasspy.mobile.app.StartRecordingReceiver

Rhasspy configuration

Item Options
Site ID Setup the siteId, used for MQTT Messages to interact with Rhasspy Base.
Remote Hermes HTTP Path for HTTP Services, SSL Certification validation can be disabled to allow self signed certificates.
Webserver Hosts Hermes api to send commands to Rhasspy Satellite.
MQTT Connects to your MQTT broker to use the Rhasspy MQTT API or Services via MQTT.
Wake-word Enables to listen for wake-word locally or with a Rhasspy service.
Speech to Text Translate Speech to Text via Rhasspy.
Intent Recognition Recognize an Intent from the Text via Rhasspy.
Text to Speech Convert Text to Speech via Rhasspy and play it locally.
Audio Playing Play audio locally as media or notification or remote.
Dialog Management Manage Dialog Handling locally or via MQTT.
Intent Handling Send Intents to Home Assistant or Rhasspy.

About

This idea was born because rhasspy-mobile-app seems abandoned and not easy maintainable. It's for the many smart home users that have their Android Tablet to control their home and want to be able to use Rhasspy voice assistant.