{"id":20231321,"url":"https://github.com/cedpoilly/parrot","last_synced_at":"2026-06-12T09:32:01.891Z","repository":{"id":184297341,"uuid":"671014107","full_name":"cedpoilly/parrot","owner":"cedpoilly","description":"Ced's parrot! Speech-to-text (Whisper API from OpenAI) and text-to-speech (Narakeet API) demo.","archived":false,"fork":false,"pushed_at":"2023-08-06T12:47:53.000Z","size":2278,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T13:46:41.704Z","etag":null,"topics":["formidable","narakeet","nuxt3","openai","whisper-api"],"latest_commit_sha":null,"homepage":"https://parrot.cedpoilly.dev","language":"Vue","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/cedpoilly.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}},"created_at":"2023-07-26T10:47:17.000Z","updated_at":"2023-08-06T12:49:52.000Z","dependencies_parsed_at":"2023-08-17T22:33:27.203Z","dependency_job_id":null,"html_url":"https://github.com/cedpoilly/parrot","commit_stats":null,"previous_names":["cedpoilly/nuxt_whisper_demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cedpoilly/parrot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedpoilly%2Fparrot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedpoilly%2Fparrot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedpoilly%2Fparrot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedpoilly%2Fparrot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedpoilly","download_url":"https://codeload.github.com/cedpoilly/parrot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedpoilly%2Fparrot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34238713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["formidable","narakeet","nuxt3","openai","whisper-api"],"created_at":"2024-11-14T07:46:07.411Z","updated_at":"2026-06-12T09:32:01.859Z","avatar_url":"https://github.com/cedpoilly.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nuxt Whisper Demo\n\nThis is my parrot app that I built for fun. Say something and it will reply back.\n\n## About this demo\n\nIn this demo we use the front-end of a `Nuxt 3` app to upload an audio file to a Nuxt API route.\n\nThe API route processes the file with the `formidable` library to parse the multipart file.\n\nThe file is then sent to OpenAI's `Whisper` API, which is an ASR (Automatic Speech Recognition) API.\n\n## Improvements\n\nThere are a few improvements I want to bring to the app. Below are a few of them.\n\n### Audio visualisation [status: research]\n\nWhen the user speaks, we want to visualise the audio. We also want the visualisation for when the parrot speaks back.\n\nHere is an article that I have found: [A Guide To Audio Visualization With JavaScript And GSAP (Part 1)](https://www.smashingmagazine.com/2022/03/audio-visualization-javascript-gsap-part1/)\n\n### General UI updates [status: research]\n\n- [] parrot icon, including the favicon\n- [] move the description out of the way, make it accessible via a button\n- [] make it visually appealing with an animated parrot\n\n### Make it a PWA\n\n- [] Make the app installable\n- [] Make it open offline\n- [] When offline, use the browser's SpeechSynthesis API\n\n\n## Configuration\n\nYou will need to create a `.env` file and set the `OPENAI_KEY` key to your own OpenAI key. This implies that you have an account at [openai.com](https://openai.com).\nGo to [platform.openai.com/account/api-keys](https://platform.openai.com/account/api-keys) to create a new `secret key`.\n\nYour `.env` file should look like this:\n\n```env\nOPENAI_KEY=sk-dja9sd8jas9d8ajsd9asjda9djasd98sjd98ajd98sajdas9 # not a real key\n```\n\n## Starting up the Nuxt project\n\n\u003e The following is from the \"Nuxt Minimal Starter\" guide\n\nLook at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.\n\n### Setup\n\nMake sure to install the dependencies:\n\n```bash\n# yarn\nyarn install\n\n# npm\nnpm install\n\n# pnpm\npnpm install\n```\n\n### Development Server\n\nStart the development server on http://localhost:3000\n\n```bash\nnpm run dev\n```\n\n### Production\n\nBuild the application for production:\n\n```bash\nnpm run build\n```\n\nLocally preview production build:\n\n```bash\nnpm run preview\n```\n\nCheck out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedpoilly%2Fparrot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcedpoilly%2Fparrot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedpoilly%2Fparrot/lists"}