{"id":24692586,"url":"https://github.com/ninofiliu/talker","last_synced_at":"2026-02-24T10:05:00.823Z","repository":{"id":273238296,"uuid":"919068588","full_name":"ninofiliu/talker","owner":"ninofiliu","description":"An ultra-simple LLM chatbot with a voice interface","archived":false,"fork":false,"pushed_at":"2025-01-19T16:53:48.000Z","size":10,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-24T11:38:42.381Z","etag":null,"topics":["chatbot","llm","speech-to-text","text-to-speech","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ninofiliu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-01-19T16:21:58.000Z","updated_at":"2025-01-20T21:19:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"e12ddc00-f4da-49fd-a588-255de2725d21","html_url":"https://github.com/ninofiliu/talker","commit_stats":null,"previous_names":["ninofiliu/talker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ninofiliu/talker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninofiliu%2Ftalker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninofiliu%2Ftalker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninofiliu%2Ftalker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninofiliu%2Ftalker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ninofiliu","download_url":"https://codeload.github.com/ninofiliu/talker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ninofiliu%2Ftalker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29779262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["chatbot","llm","speech-to-text","text-to-speech","voice-assistant"],"created_at":"2025-01-26T20:16:36.937Z","updated_at":"2026-02-24T10:05:00.808Z","avatar_url":"https://github.com/ninofiliu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Talker\r\n\r\nA super simple tool for a chatbot with voice control\r\n\r\n## How it works\r\n\r\nThe whole code contains close to no logic in itself, rather it is mostly glue code between:\r\n\r\n- [getUserMedia](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) and [MediaRecorder](https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder) to record the user's audio\r\n- [OpenAI's Whisper](https://openai.com/index/whisper/) to convert the user audio into a question text\r\n- [Google's Gemma](https://ai.google.dev/gemma) as an LLM to compute a answer text\r\n- [Huggingface's Transformers](https://pypi.org/project/huggingface/) python lib to wrap around the LLM, or any model you want to use (just replace the `checkpoint` string)\r\n- [SpeechSynthesis](https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis) to convert the answer text into audio\r\n\r\nAs of now it's way too basic to be practically used on a daily basis, but it serves as a POC for future applications (eg: LLM-powered local vocal chat in video games). It's also a surprisingly small repository: 85 lines for the python server, 58 lines for the web app\r\n\r\n## Installation\r\n\r\nInstall torch with GPU support\r\n\r\n```sh\r\npip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118\r\n```\r\n\r\nInstall dependencies\r\n\r\n```sh\r\npip install -r requirements.txt\r\n```\r\n\r\nRun the server\r\n\r\n```sh\r\npython server.py\r\n```\r\n\r\nNavigate to [localhost:8080](http://localhost:8080) when ready\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fninofiliu%2Ftalker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fninofiliu%2Ftalker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fninofiliu%2Ftalker/lists"}