/starassistant-hermes

Python classes for Hermes protocol

Primary LanguageHTMLMIT LicenseMIT

Rhasspy Hermes

Fork of https://github.com/rhasspy/rhasspy-hermes to support the starassistant repo.

Changes w.r.t. the forked repo:

  • upgraded dataclasses json to be compatible with langchain

Python classes for Hermes protocol support in Rhasspy.

Installation

Install the latest version of the package from PyPI:

pip3 install rhasspy-hermes

Command-Line Usage

A command-line interface is available to do some basic transcription, intent recognition, text to speech, and wakeword tasks. Run the following command:

python3 -m rhasspyhermes --help

to see the available commands and their options. You can add a --debug argument to see DEBUG information.

Each command will print the appropriate Hermes response message(s) as JSON (one per line). With the --print-topics flag, the MQTT topic will be printed before each JSON message.

Examples

Transcribe multiple WAV files:

python3 -m rhasspyhermes transcribe-wav /path/to/my-1.wav /path/to/my-2.wav ...
{ ... }  # prints hermes/asr/textCaptured message for my-1.wav
{ ... }  # prints hermes/asr/textCaptured message for my-2.wav

Transcribe a WAV file (stdin):

python3 -m rhasspyhermes transcribe-wav < /path/to/my.wav
{ ... }  # prints hermes/asr/textCaptured message

Recognize an intent from text:

python3 -m rhasspyhermes recognize-intent 'turn on the living room lamp'
{ ... }  # prints hermes/intent/<intentName> message

Speak a sentence:

python3 -m rhasspyhermes speak-sentence --language en 'what can I do for you, human?'
{ ... }  # prints hermes/tts/sayFinished message

Wait for wake word:

python3 -m rhasspyhermes wait-wake
{ ... }  # prints hermes/hotword/<wakewordId>/detected message

License

This project is provided by Michael Hansen as open source software with the MIT license. See the LICENSE file for more information.