https://github.com/mgoltzsche/ai-assistant-vui
A voice user interface (VUI) to interact with an AI assistant
https://github.com/mgoltzsche/ai-assistant-vui
ai ai-assistant artificial-intelligence chatbot chatgpt live-transcription localai onnx-runtime openai silero-vad speech speech-recognition vad voice voice-assistant voice-chat-bot voice-commands voice-control voice-user-interface vui
Last synced: 7 months ago
JSON representation
A voice user interface (VUI) to interact with an AI assistant
- Host: GitHub
- URL: https://github.com/mgoltzsche/ai-assistant-vui
- Owner: mgoltzsche
- License: apache-2.0
- Created: 2025-01-05T22:56:11.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-03-10T03:33:36.000Z (7 months ago)
- Last Synced: 2025-03-10T04:30:54.371Z (7 months ago)
- Topics: ai, ai-assistant, artificial-intelligence, chatbot, chatgpt, live-transcription, localai, onnx-runtime, openai, silero-vad, speech, speech-recognition, vad, voice, voice-assistant, voice-chat-bot, voice-commands, voice-control, voice-user-interface, vui
- Language: Go
- Homepage:
- Size: 72.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ai-assistant-vui
A voice user interface (VUI) to interact with an AI assistant.
The VUI runs as a client of an OpenAI-compatible API (which may be served by [LocalAI](https://github.com/mudler/LocalAI)).
[silero-vad](https://github.com/snakers4/silero-vad) is built into the client for voice activity detection (VAD).
For chat completion, speech-to-text (STT) and text-to-speech (TTS) capabilities the client leverages the API server.
In order to detect whether the AI assistant is addressed, a wake word can be configured.
Though, wake word support is implemented by matching the STT (whisper) output string against the wake word, requiring all voice communication to be STT processed, at least for now.## Build
```sh
make
```## Run
1. Start the [LocalAI](https://github.com/mudler/LocalAI) API server (LLM server):
```sh
make run-localai
```2. Browse the LocalAI web GUI at [http://127.0.0.1:8080/browse/](http://127.0.0.1:8080/browse/) and search and install the models you want to use, e.g. `whisper-1` (STT), `llama-3-sauerkrautlm-8b-instruct` (chat) and `voice-en-us-amy-low` (TTS) or `voice-de-kerstin-low` (TTS).
3. Run the VUI (within another terminal):
```sh
make run-vui INPUT_DEVICE="KLIM Talk" OUTPUT_DEVICE="ALC1220 Analog"
```You will likely have to replace the values of `INPUT_DEVICE` and `OUTPUT_DEVICE` with the names or IDs of your audio devices.
You may not be able to use an audio device when another program (e.g. your browser) is already using it.
In that case, please close other programs, wait a few seconds and then re-run the VUI.You need to mention the configured wake word with each request to the AI assistant.
It defaults to "Computer".
For instance you can ask "Computer, tell me a joke!"