Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AlexandreSajus/JARVIS
Your own personal voice assistant: Voice to Text to LLM to Speech, displayed in a web interface
https://github.com/AlexandreSajus/JARVIS
deepgram elevenlabs llm openai python taipy tts voice-assistant
Last synced: 3 days ago
JSON representation
Your own personal voice assistant: Voice to Text to LLM to Speech, displayed in a web interface
- Host: GitHub
- URL: https://github.com/AlexandreSajus/JARVIS
- Owner: AlexandreSajus
- License: gpl-3.0
- Created: 2023-12-15T13:41:02.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-06-09T00:16:29.000Z (5 months ago)
- Last Synced: 2024-08-01T15:32:11.174Z (3 months ago)
- Topics: deepgram, elevenlabs, llm, openai, python, taipy, tts, voice-assistant
- Language: Python
- Homepage:
- Size: 1.16 MB
- Stars: 431
- Watchers: 3
- Forks: 81
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JARVIS
Your own voice personal assistant: Voice to Text to LLM to Speech, displayed in a web interface.
## How it works
1. :microphone: The user speaks into the microphone
2. :keyboard: Voice is converted to text using Deepgram
3. :robot: Text is sent to OpenAI's GPT-3 API to generate a response
4. :loudspeaker: Response is converted to speech using ElevenLabs
5. :loud_sound: Speech is played using Pygame
6. :computer: Conversation is displayed in a webpage using Taipy## Video Demo
## Requirements
**Python 3.8 - 3.11**
Make sure you have the following API keys:
- Deepgram
- OpenAI
- Elevenlabs## How to install
1. Clone the repository
```bash
git clone https://github.com/AlexandreSajus/JARVIS.git
```2. Install the requirements
```bash
pip install -r requirements.txt
```3. Create a `.env` file in the root directory and add the following variables:
```bash
DEEPGRAM_API_KEY=XXX...XXX
OPENAI_API_KEY=sk-XXX...XXX
ELEVENLABS_API_KEY=XXX...XXX
```## How to use
1. Run `display.py` to start the web interface
```bash
python display.py
```2. In another terminal, run `jarvis.py` to start the voice assistant
```bash
python main.py
```- Once ready, both the web interface and the terminal will show `Listening...`
- You can now speak into the microphone
- Once you stop speaking, it will show `Stopped listening`
- It will then start processing your request
- Once the response is ready, it will show `Speaking...`
- The response will be played and displayed in the web interface.Here is an example:
```
Listening...
Done listening
Finished transcribing in 1.21 seconds.
Finished generating response in 0.72 seconds.
Finished generating audio in 1.85 seconds.
Speaking...--- USER: good morning jarvis
--- JARVIS: Good morning, Alex! How can I assist you today?Listening...
...
```