Amadeus is a cutting-edge personal assistant prototype, tapping into the recent advancements in the generative AI domain. Designed with a novel human-machine interface (HMI) in mind, this prototype allows users to engage in vocal interactions with a sophisticated AI, specifically a Large Language Model. Amadeus comprises two core components: an Electron client and a Node server. The genesis of this prototype serves as a proof of concept, with ambitions geared towards a broader commercial deployment.
For anyone intrigued by Amadeus prototype and keen on exploring its functionalities, here's a breakdown of how you can interact with the project:
- Composition: Amadeus is structured around two primary elements and two external dependencies.
- Primary Elements:
- An Electron client, developed in JavaScript.
- A Node server application, developed in TypeScript.
- External Dependencies:
- GPT from OpenAI.
- ElevenLabs.
- Primary Elements:
The image above provides a high-level overview of the application's workflow:
-
User Voice Input: The user verbally communicates with the Electron client, which captures the spoken content. in version 1.0.0, user press space bar to talk.
-
Speech-to-Text: Utilizing OpenAI's transcription capabilities, the Electron client transcribes the user's voice input into text.
-
Communication with Node Server: The transcribed text is relayed to the Node server, which interacts with GPT to generate a response.
-
Receiving the Response: The Node server sends the GPT-generated sentences back to the Electron client via a WebSocket connection.
-
Text-to-Speech: Upon receiving the text response, the Electron client collaborates with the ElevenLabs API to convert the text into spoken words.
-
Playback: The Electron client then sequentially plays back the generated voice messages to the user.
We welcome contributions from everyone, irrespective of their origin. Here's how you can help:
-
Understand our Code of Conduct: Before contributing, please read our Code of Conduct. We expect all our contributors to adhere to it.
-
Start with your First Issues: If you're new to the project, we recommend starting with issues labeled inside the issues guide.
-
Read the Getting Started guide: Detailed instructions on setting up the dev environment and contributing can be found in our Getting started Guide.
Remember, every contribution, whether it's code, documentation, translations, or even reporting bugs, is valuable to us. Let's make this project better together!