{"id":18993442,"url":"https://github.com/mdibyo/spk","last_synced_at":"2026-02-27T02:01:06.758Z","repository":{"id":235853688,"uuid":"791389969","full_name":"mDibyo/spk","owner":"mDibyo","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-25T10:46:24.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-21T11:48:15.439Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/mDibyo.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":"2024-04-24T16:24:19.000Z","updated_at":"2024-04-25T10:46:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"4aff531e-4a19-4d35-a360-2efaf7c0ac66","html_url":"https://github.com/mDibyo/spk","commit_stats":null,"previous_names":["mdibyo/spk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mDibyo/spk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mDibyo%2Fspk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mDibyo%2Fspk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mDibyo%2Fspk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mDibyo%2Fspk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mDibyo","download_url":"https://codeload.github.com/mDibyo/spk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mDibyo%2Fspk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29882603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"online","status_checked_at":"2026-02-27T02:00:06.759Z","response_time":57,"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":[],"created_at":"2024-11-08T17:21:25.012Z","updated_at":"2026-02-27T02:01:06.705Z","avatar_url":"https://github.com/mDibyo.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# spk\n\nspk is a simple Chrome extension that enables voice typing in any textarea. It uses the Chrome Speech Recognition API, with OpenAI GPT 3.5-Turbo and GPT 4.0 for punctuation, capitalization, and proper noun-correction support.\n\n## Concept\n\nThe spk extension is active as soon as any webpage is loaded:\n\n- It starts by scanning the document for proper nouns - these are used to seed speech recognition since the user is more likely than not to be referring to items on the page.\n- When the user enters an textarea, they immediately get the option to \"spk\" rather than type. After selecting, the user can start dictating what they want to type.\n- \"spk\" first uses Chrome's Speech Recognition API for the initial speech-to-text and then improves/corrects it using an LLM chain.\n- \"spk\" is able to learn from errors - \"spk\" remembers any edits that the user made to the voice dictation output, and takes those into consideration in future.\n\n## Development\n\n### OpenAI API Key\n\nThe extension in its current state requires that the user provide an Open API key for access to Open AI's LLMs. You will be able to add it in the \"spk\" extension dialog (accessed by clicking the \"spk\" Chrome extension icon in the Chrome browser).\n\n### Install dependencies\n\nThis project requires node (v18+). If your system node version is not up-to-date, consider using a version manager like [NVM](https://github.com/nvm-sh/nvm) to install and manage node versions.\n\n```shell\nnpm install\n```\n\n### Open an example webpage\n\nOpen an example webpage for the extension to work on. You can specify the example with the `EXAMPLE` environment variable.\n\n```shell\nEXAMPLE=best_food npm run start-example\n```\n\nIf the `EXAMPLE` environment variable is not defined, the \"default\" example will be started.\n\n**You can also skip this step and open any webpage.**\n\n### Build Chrome extension and load into browser\n\nIn a separate terminal, run\n\n```shell\nnpm start\n```\n\nThis will create an unpacked version of the extension in a `dist` folder. Load the unpacked extension in Chrome following instructions [here](https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world#load-unpacked).\n\nAdd your Open AI key, as noted above.\n\nThen go to any page.\n\n**Note**: The autoreload behavior of the development version of the extension, makes it so that every tab reloads when a change is made to the extension(!). To avoid this, you can narrow down the set of domains the extension is active on, by changing the src/manifest.json file - update the \"content_scripts\".\"matches\" field to `[\"*://localhost:*/*\"]`.\n\n## Release\n\nWhen the time is right, the Chrome extension can be released by building a packaged extension (with `npm build`) and then uploading to the Chrome App store.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdibyo%2Fspk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdibyo%2Fspk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdibyo%2Fspk/lists"}