{"id":13579232,"url":"https://github.com/AlexandreSajus/JARVIS","last_synced_at":"2025-04-05T20:33:22.177Z","repository":{"id":212898322,"uuid":"732038358","full_name":"AlexandreSajus/JARVIS","owner":"AlexandreSajus","description":"Your own personal voice assistant: Voice to Text to LLM to Speech, displayed in a web interface","archived":false,"fork":false,"pushed_at":"2024-06-09T00:16:29.000Z","size":1220,"stargazers_count":487,"open_issues_count":6,"forks_count":89,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-03T03:09:01.242Z","etag":null,"topics":["deepgram","elevenlabs","llm","openai","python","taipy","tts","voice-assistant"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlexandreSajus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-15T13:41:02.000Z","updated_at":"2025-04-02T13:24:02.000Z","dependencies_parsed_at":"2024-08-01T15:30:21.879Z","dependency_job_id":"377235dc-dcc4-4d09-ae7b-b7beb7a1a196","html_url":"https://github.com/AlexandreSajus/JARVIS","commit_stats":null,"previous_names":["alexandresajus/jarvis"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FJARVIS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FJARVIS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FJARVIS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexandreSajus%2FJARVIS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexandreSajus","download_url":"https://codeload.github.com/AlexandreSajus/JARVIS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399872,"owners_count":20932876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deepgram","elevenlabs","llm","openai","python","taipy","tts","voice-assistant"],"created_at":"2024-08-01T15:01:37.580Z","updated_at":"2025-04-05T20:33:22.139Z","avatar_url":"https://github.com/AlexandreSajus.png","language":"Python","readme":"# JARVIS\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"media/cqb_conv.png\" alt=\"JARVIS helping me choose a firearm\" width=\"100%\"/\u003e\n\u003c/p\u003e\n\nYour own voice personal assistant: Voice to Text to LLM to Speech, displayed in a web interface.\n\n## How it works\n\n1. :microphone: The user speaks into the microphone\n2. :keyboard: Voice is converted to text using \u003ca href=\"https://deepgram.com/\" target=\"_blank\"\u003eDeepgram\u003c/a\u003e\n3. :robot: Text is sent to \u003ca href=\"https://openai.com/\" target=\"_blank\"\u003eOpenAI\u003c/a\u003e's GPT-3 API to generate a response\n4. :loudspeaker: Response is converted to speech using \u003ca href=\"https://elevenlabs.io/\" target=\"_blank\"\u003eElevenLabs\u003c/a\u003e\n5. :loud_sound: Speech is played using \u003ca href=\"https://www.pygame.org/wiki/GettingStarted\" target=\"_blank\"\u003ePygame\u003c/a\u003e\n6. :computer: Conversation is displayed in a webpage using \u003ca href=\"https://github.com/Avaiga/taipy\" target=\"_blank\"\u003eTaipy\u003c/a\u003e\n\n## Video Demo\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://youtu.be/aIg4-eL9ATc\" target=\"_blank\"\u003e\n    \u003cimg src=\"media/git_thumb.png\" alt=\"Youtube Devlog\" width=\"50%\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Requirements\n\n**Python 3.8 - 3.11**\n\nMake sure you have the following API keys:\n- \u003ca href=\"https://developers.deepgram.com/docs/authenticating\" target=\"_blank\"\u003eDeepgram\u003c/a\u003e\n- \u003ca href=\"https://platform.openai.com/account/api-keys\" target=\"_blank\"\u003eOpenAI\u003c/a\u003e\n- \u003ca href=\"https://elevenlabs.io/docs/api-reference/text-to-speech\" target=\"_blank\"\u003eElevenlabs\u003c/a\u003e\n\n## How to install\n\n1. Clone the repository\n\n```bash\ngit clone https://github.com/AlexandreSajus/JARVIS.git\n```\n\n2. Install the requirements\n\n```bash\npip install -r requirements.txt\n```\n\n3. Create a `.env` file in the root directory and add the following variables:\n\n```bash\nDEEPGRAM_API_KEY=XXX...XXX\nOPENAI_API_KEY=sk-XXX...XXX\nELEVENLABS_API_KEY=XXX...XXX\n```\n\n## How to use\n\n1. Run `display.py` to start the web interface\n\n```bash\npython display.py\n```\n\n2. In another terminal, run `jarvis.py` to start the voice assistant\n\n```bash\npython main.py\n```\n\n- Once ready, both the web interface and the terminal will show `Listening...`\n- You can now speak into the microphone\n- Once you stop speaking, it will show `Stopped listening`\n- It will then start processing your request\n- Once the response is ready, it will show `Speaking...`\n- The response will be played and displayed in the web interface.\n\nHere is an example:\n\n```\nListening...\nDone listening\nFinished transcribing in 1.21 seconds.\nFinished generating response in 0.72 seconds.\nFinished generating audio in 1.85 seconds.\nSpeaking...\n\n --- USER: good morning jarvis\n --- JARVIS: Good morning, Alex! How can I assist you today?\n\nListening...\n...\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"media/good_morning.png\" alt=\"Saying good morning\" width=\"80%\"/\u003e\n\u003c/p\u003e","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAlexandreSajus%2FJARVIS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAlexandreSajus%2FJARVIS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAlexandreSajus%2FJARVIS/lists"}