{"id":15010065,"url":"https://github.com/ovidijusparsiunas/speech-to-element","last_synced_at":"2025-07-08T00:05:58.359Z","repository":{"id":177090013,"uuid":"658147091","full_name":"OvidijusParsiunas/speech-to-element","owner":"OvidijusParsiunas","description":"A simple way to add speech to text functionality to your website :microphone:","archived":false,"fork":false,"pushed_at":"2025-03-23T09:45:23.000Z","size":3188,"stargazers_count":17,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-23T10:27:59.225Z","etag":null,"topics":["azure","cognitive-services","element","input","real-time","realtime","speech","speech-recognition","speech-to-text","stt","webspeech","webspeech-api"],"latest_commit_sha":null,"homepage":"https://speechtoelement.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OvidijusParsiunas.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-06-24T23:19:52.000Z","updated_at":"2025-03-23T09:44:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"b04ec41f-427f-435e-95b7-4cf01b402f25","html_url":"https://github.com/OvidijusParsiunas/speech-to-element","commit_stats":null,"previous_names":["ovidijusparsiunas/speech-to-input"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvidijusParsiunas%2Fspeech-to-element","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvidijusParsiunas%2Fspeech-to-element/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvidijusParsiunas%2Fspeech-to-element/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvidijusParsiunas%2Fspeech-to-element/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OvidijusParsiunas","download_url":"https://codeload.github.com/OvidijusParsiunas/speech-to-element/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248083558,"owners_count":21045122,"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":["azure","cognitive-services","element","input","real-time","realtime","speech","speech-recognition","speech-to-text","stt","webspeech","webspeech-api"],"created_at":"2024-09-24T19:29:46.689Z","updated_at":"2025-04-09T17:54:16.238Z","avatar_url":"https://github.com/OvidijusParsiunas.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"./assets/banner-white.png\" alt=\"Logo\"\u003e\n\n\u003cb\u003eSpeech To Element\u003c/b\u003e is an all purpose [npm](https://www.npmjs.com/package/speech-to-element) library that can transcribe speech into text right out of the box! Try it out in the [official website](https://speechtoelement.com).\n\n### :zap: Services\n\n- [Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API)\n- [Azure Cognitive Speech Services API](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-to-text)\n\nhttps://github.com/OvidijusParsiunas/speech-to-element/assets/18709577/e2e618f8-b61c-4877-804b-26eeefbb0afa\n\n### :computer: How to use\n\n[NPM](https://www.npmjs.com/package/speech-to-element):\n\n```\nnpm install speech-to-element\n```\n\n```\nimport SpeechToElement from 'speech-to-element';\n\nconst targetElement = document.getElementById('target-element');\nSpeechToElement.toggle('webspeech', {element: targetElement});\n```\n\n[CDN](https://cdn.jsdelivr.net/gh/ovidijusparsiunas/speech-to-element@master/component/bundle/index.min.js):\n\n```\n\u003cscript type=\"module\" src=\"https://cdn.jsdelivr.net/gh/ovidijusparsiunas/speech-to-element@master/component/bundle/index.min.js\"\u003e\u003c/script\u003e\n```\n\n```\nconst targetElement = document.getElementById('target-element');\nwindow.SpeechToElement.toggle('webspeech', {element: targetElement});\n```\n\nWhen using Azure, you will also need to install its speech [SDK](https://www.npmjs.com/package/microsoft-cognitiveservices-speech-sdk). Read more in the [Azure SDK](#floppy_disk-azure-sdk) section. \u003cbr /\u003e\nMake sure to checkout the [examples](https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples) directory to browse templates for [React](https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples/ui), [Next.js](https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples/nextjs) and more.\n\n### :beginner: API\n\n#### Methods\n\nUsed to control Speech To Element transcription:\n\n| Name                                                                                   | Description                                                                                                           |\n| :------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------- |\n| startWebSpeech({[`Options`](#options) \u0026 [`WebSpeechOptions`](#webspeechoptions)})      | Start [Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API)      |\n| startAzure({[`Options`](#options) \u0026 [`AzureOptions`](#azureoptions)})                  | Start [Azure API](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-to-text)                  |\n| toggle(\"webspeech\", {[`Options`](#options) \u0026 [`WebSpeechOptions`](#webspeechoptions)}) | Start/Stop [Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API) |\n| toggle(\"azure\", {[`Options`](#options) \u0026 [`AzureOptions`](#azureoptions)})             | Start/Stop [Azure API](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-to-text)             |\n| stop()                                                                                 | Stops all speech services                                                                                             |\n| endCommandMode()                                                                       | Ends the [`command`](#commands) mode                                                                                  |\n\nExamples:\n\n```\nSpeechToElement.startWebSpeech({element: targetElement, displayInterimResults: false});\nSpeechToElement.startAzure({element: targetElement, region: 'westus', token: 'token'});\nSpeechToElement.toggle('webspeech', {element: targetElement, language: 'en-US'});\nSpeechToElement.toggle('azure', {element: targetElement, region: 'eastus', subscriptionKey: 'key'});\nSpeechToElement.stop();\nSpeechToElement.endCommandMode();\n```\n\n#### Object Types\n\n##### Options:\n\nGeneric options for the speech to element functionality:\n\n| Name                       | Type                                                                      | Description                                                                                                                                                      |\n| :------------------------- | :------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| element                    | `Element \\| Element[]`                                                    | Transcription target element. By defining multiple inside an array the user can switch between them in the same session by clicking on them.                     |\n| autoScroll                 | `boolean`                                                                 | Controls if element will automatically scroll to the new text.                                                                                                   |\n| displayInterimResults      | `boolean`                                                                 | Controls if interim result are displayed.                                                                                                                        |\n| textColor                  | [`TextColor`](#textcolor)                                                 | Object defining the result text colors.                                                                                                                          |\n| translations               | `{[key: string]: string}`                                                 | Case-sensitive one-to-one map of words that will automatically be translated to others.                                                                          |\n| commands                   | [`Commands`](#commands)                                                   | Set the phrases that will trigger various chat functionality.                                                                                                    |\n| onStart                    | `() =\u003e void`                                                              | Triggered when speech recording has started.                                                                                                                     |\n| onStop                     | `() =\u003e void`                                                              | Triggered when speech recording has stopped.                                                                                                                     |\n| onResult                   | `( text: string, isFinal: boolean ) =\u003e void`                              | Triggered when a new result is transcribed and inserted into element.                                                                                            |\n| onPreResult                | `( text: string, isFinal: boolean )` =\u003e [PreResult](#preresult) \\| `void` | Triggered before result text insertion. This function can be used to control the speech service based on what was spoken via the [PreResult](#preresult) object. |\n| onCommandMode\u003cbr /\u003eTrigger | `(isStart: boolean) =\u003e void`                                              | Triggered when command mode is initiated and stopped.                                                                                                            |\n| onPauseTrigger             | `(isStart: boolean) =\u003e void`                                              | Triggered when the pause command is initiated and stopped via resume command.                                                                                    |\n| onError                    | `(message: string) =\u003e void`                                               | Triggered when an error has occurred.                                                                                                                            |\n\nExamples:\n\n```\nSpeechToElement.toggle('webspeech', {element: targetElement, translations: {hi: 'bye', Hi: 'Bye'}});\nSpeechToElement.toggle('webspeech', {onResult: (text) =\u003e console.log(text)});\n```\n\n##### TextColor:\n\nObject used to set the color for transcription result text (does not work for `input` and `textarea` elements):\n\n| Name    | Type     | Description          |\n| :------ | :------- | :------------------- |\n| interim | `string` | Temporary text color |\n| final   | `string` | Final text color     |\n\nExample:\n\n```\nSpeechToElement.toggle('webspeech', {\n  element: targetElement, textColor: {interim: 'grey', final: 'black'}\n});\n```\n\n##### Commands:\n\nhttps://github.com/OvidijusParsiunas/speech-to-element/assets/18709577/cca6bc40-ceb7-4d48-92e4-31c5f66366eb\n\nObject used to set the phrases of commands that will control transcription and input functionality:\n\n| Name          | Type                                  | Description                                                                                                                                               |\n| :------------ | :------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| stop          | `string`                              | Stop the speech service                                                                                                                                   |\n| pause         | `string`                              | Temporarily stops the transcription and re-enables it after the phrase for `resume` is spoken.                                                            |\n| resume        | `string`                              | Re-enables transcription after it has been stopped by the `pause` or `commandMode` commands.                                                              |\n| reset         | `string`                              | Remove the transcribed text (since the last element cursor move)                                                                                          |\n| removeAllText | `string`                              | Remove all element text                                                                                                                                   |\n| commandMode   | `string`                              | Activate the command mode which will stop the transcription and wait for a command to be executed. Use the phrase for `resume` to leave the command mode. |\n| settings      | [`CommandSettings`](#commandsettings) | Controls how command mode is used.                                                                                                                        |\n\nExample:\n\n```\nSpeechToElement.toggle('webspeech', {\n  element: targetElement,\n  commands: {\n    pause: 'pause',\n    resume: 'resume',\n    removeAllText: 'remove text',\n    commandMode: 'command'\n  }\n});\n```\n\n##### CommandSettings:\n\nObject used to configure how the command phrases are interpreted:\n\n| Name          | Type      | Description                                                                                                                                                                                                                                                                                                |\n| :------------ | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| substrings    | `boolean` | Toggles whether command phrases can be part of spoken words or if they are whole words. E.g. when this is set to _true_ and your command phrase is _\"stop\"_ - when you say \"stopping\" the command will be executed. However if it is set to _false_ - the command will only be executed if you say \"stop\". |\n| caseSensitive | `boolean` | Toggles if command phrases are case sensitive. E.g. if this is set to _true_ and your command phrase is _\"stop\"_ - when the service recognizes your speech as \"Stop\" it will not execute your command. On the other hand if it is set to _false_ it will execute.                                          |\n\nExample:\n\n```\nSpeechToElement.toggle('webspeech', {\n  element: targetElement,\n  commands: {\n    removeAllText: 'remove text',\n    settings: {\n      substrings: true,\n      caseSensitive: false\n  }}\n});\n```\n\n##### PreResult:\n\nResult object for the `onPreResult` function. This can be used to control the speech service and facilitate custom commands for your application:\n\n| Name          | Type      | Description                                                                                                       |\n| :------------ | :-------- | :---------------------------------------------------------------------------------------------------------------- |\n| stop          | `boolean` | Stops the speech service                                                                                          |\n| restart       | `boolean` | Restarts the speech service                                                                                       |\n| removeNewText | `boolean` | Toggles whether the newly spoken (interim) text is removed when either of the above properties are set to `true`. |\n\nExample for a creating a custom command:\n\n```\nSpeechToElement.toggle('webspeech', {\n  element: targetElement,\n  onPreResult: (text) =\u003e {\n    if (text.toLowerCase().includes('custom command')) {\n      SpeechToElement.endCommandMode();\n      your custom code here\n      return {restart: true, removeNewText: true};\n  }}\n});\n```\n\n##### WebSpeechOptions:\n\nCustom options for the [Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API):\n\n| Name     | Type     | Description                                                                                                                                                                              |\n| :------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| language | `string` | This is the recognition language. See the following [`QA`](https://stackoverflow.com/questions/23733537/what-are-the-supported-languages-for-web-speech-api-in-html5) for the full list. |\n\nExample:\n\n```\nSpeechToElement.toggle('webspeech', {element: targetElement, language: 'en-GB'});\n```\n\n##### AzureOptions:\n\nOptions for the [Azure Cognitive Speech Services API](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-to-text). This object REQUIRES `region` and either `retrieveToken` or `subscriptionKey` or `token` properties to be defined with it:\n\n| Name               | Type                            | Description                                                                                                                                                                                                                                                                                                                                            |\n| :----------------- | :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| region             | `string`                        | Location/region of your Azure speech resource.                                                                                                                                                                                                                                                                                                         |\n| retrieveToken      | `() =\u003e Promise\u003cstring\u003e`         | Function used to retrieve a new token for your Azure speech resource. It is the recommended property to use as it can retrieve the token from a secure server that will hide your credentials. Check out the [starter server templates](https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples) to start a local server in seconds. |\n| subscriptionKey    | `string`                        | Subscription key for your Azure speech resource.                                                                                                                                                                                                                                                                                                       |\n| token              | `string`                        | Temporary token for the Azure speech resource.                                                                                                                                                                                                                                                                                                         |\n| language           | `string`                        | BCP-47 string value to denote the recognition language. You can find the full list [here](https://docs.microsoft.com/azure/cognitive-services/speech-service/supported-languages).                                                                                                                                                                     |\n| autoLanguage       | [`AutoLanguage`](#AutoLanguage) | Automatically identify the spoken language based on a provided list.                                                                                                                                                                                                                                                                                   |\n| endpointId         | `endpointId`                    | Endpoint ID of a customized speech model.                                                                                                                                                                                                                                                                                                              |\n| deviceId           | `deviceId`                      | ID of specific media device. More info [here](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/how-to-select-audio-input-devices#audio-device-ids-in-javascript).                                                                                                                                                                    |\n| stopAfterSilenceMs | `number`                        | Milliseconds of silence required for the speech service to automatically stop. Default is 25000ms (25 seconds).                                                                                                                                                                                                                                        |\n\nExamples:\n\n```\nSpeechToElement.toggle('azure', {\n  element: targetElement,\n  region: 'eastus',\n  token: 'token',\n  language: 'ja-JP'\n});\n\nSpeechToElement.toggle('azure', {\n  element: targetElement,\n  region: 'southeastasia',\n  retrieveToken: async () =\u003e {\n    return fetch('http://localhost:8080/token')\n      .then((res) =\u003e res.text())\n      .then((token) =\u003e token)\n      .catch((error) =\u003e console.error('error'));\n  }\n});\n```\n\n\u003cbr /\u003e\n\n##### AutoLanguage:\n\nObject used to configure automatic [language identification](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-identification) based on a list of candidate `languages`:\n\n| Name      | Type                        | Description                                                                                                                                                                                                                                                                                                                                                |\n| :-------- | :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| languages | `string[]`                  | An array of candidate languages that that will be present in the audio. See available languages [here](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=language-identification). Need at least 1 language. When using `AtStart`, the maximum number of languages is 4, when using `Continuous` the maximum is 10. |\n| type      | `'AtStart' \\| 'Continuous'` | Optional property that defines if the language can be identified in the first 5 seconds and does not change via `AtStart`, or if there can be multiple languages throughout the speech via `Continuous`. `AtStart` set by default.                                                                                                                         |\n\n\u003cbr /\u003e\n\nExample server templates for the `retrieveToken` property:\n\n| Express                                                                                                                                                                                                                                        | Nest                                                                                                                                                                                                                                       | Flask                                                                                                                                                                                                                                        | Spring                                                                                                                                                                                                                                               | Go                                                                                                                                                                                                                              | Next                                                                                                                                                                                                                                  |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \u003ca href=\"https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples/node/express\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/OvidijusParsiunas/speech-to-element/HEAD/assets/expressLogo.png\" width=\"60\"/\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples/node/nestjs\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/OvidijusParsiunas/speech-to-element/HEAD/assets/nestLogo.png\" width=\"60\"/\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples/python/flask\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/OvidijusParsiunas/speech-to-element/HEAD/assets/flaskLogo.png\" width=\"60\"/\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples/java/springboot\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/OvidijusParsiunas/speech-to-element/HEAD/assets/springBootLogo.png\" width=\"50\"/\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples/go\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/OvidijusParsiunas/speech-to-element/HEAD/assets/goLogo.png\" width=\"40\"/\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/OvidijusParsiunas/speech-to-element/tree/main/examples/nextjs\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/OvidijusParsiunas/speech-to-element/HEAD/assets/nextLogo.png\" width=\"55\"/\u003e\u003c/a\u003e |\n\n\u003cbr /\u003e\n\nLocation of `subscriptionKey` and `region` details in Azure Portal:\n\n\u003cimg width=\"987\" src=\"./assets/azure-credentials.png\" alt=\"Credentials location in Azure Portal\"\u003e\n\n\u003cbr /\u003e\n\n### :floppy_disk: Azure SDK\n\nTo use the [Azure Cognitive Speech Services API](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-to-text), you will need to add the official [Azure Speech SDK](https://www.npmjs.com/package/microsoft-cognitiveservices-speech-sdk) into your project and assign it to the `window.SpeechSDK` variable. Here are some simple ways you can achieve this:\n\n- \u003cb\u003eImport from a dependancy:\u003c/b\u003e\n  If you are using a dependancy manager, import and assign it to window.SpeechSDK:\n\n  ```\n  import * as sdk from 'microsoft-cognitiveservices-speech-sdk';\n  window.SpeechSDK = sdk;\n  ```\n\n- \u003cb\u003eDynamic import from a dependancy\u003c/b\u003e\n  If you are using a dependancy manager, dynamically import and assign it to window.SpeechSDK:\n\n  ```\n  import('microsoft-cognitiveservices-speech-sdk').then((module) =\u003e {\n     window.SpeechSDK = module;\n  });\n  ```\n\n- \u003cb\u003eScript from a CDN\u003c/b\u003e\n  You can add a script tag to your markup or create one via javascript. The window.SpeechSDK property will be populated automatically:\n\n  ```\n  \u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js\"\u003e\u003c/script\u003e\n\n  const script = document.createElement(\"script\");\n  script.src = \"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js\";\n  document.body.appendChild(script);\n  ```\n\nIf your project is using `TypeScript`, add this to the file where the module is used:\n\n```\nimport * as sdk from 'microsoft-cognitiveservices-speech-sdk';\ndeclare global {\n  interface Window {\n    SpeechSDK: typeof sdk;\n  }\n}\n```\n\nExamples:\n\nExample React project that uses a package bundler. It should work similarly for other UI frameworks:\n\n[Click for Live Example](https://stackblitz.com/edit/stackblitz-starters-ujkq7j?file=src%2FApp.tsx)\n\nVanillaJS approach with no bundler (this can also be used as fallback if above doesn't work):\n\n[Click for Live Example](https://codesandbox.io/s/speech-to-element-azure-vanillajs-gvj9v4?file=/index.html)\n\n## :star: Example Product\n\n[Deep Chat](https://deepchat.dev/) - an AI oriented chat component that is using Speech To Element to power its Speech To Text capabilities.\n\n## :heart: Contributions\n\nOpen source is built by the community for the community. All contributions to this project are welcome!\u003cbr\u003e\nAdditionally, if you have any suggestions for enhancements, ideas on how to take the project further or have discovered a bug, do not hesitate to create a new issue ticket and we will look into it as soon as possible!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovidijusparsiunas%2Fspeech-to-element","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fovidijusparsiunas%2Fspeech-to-element","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovidijusparsiunas%2Fspeech-to-element/lists"}