{"id":4602,"url":"https://github.com/mihirsoni/react-native-android-speech","last_synced_at":"2025-03-22T07:31:18.203Z","repository":{"id":57335261,"uuid":"45734101","full_name":"mihirsoni/react-native-android-speech","owner":"mihirsoni","description":"This simple React Native module for Android Text To Speech functionality.","archived":false,"fork":false,"pushed_at":"2017-07-25T02:24:31.000Z","size":18,"stargazers_count":48,"open_issues_count":5,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-18T09:21:27.475Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/react-native-android-speech","language":"Java","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/mihirsoni.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}},"created_at":"2015-11-07T11:41:49.000Z","updated_at":"2024-07-15T17:12:45.000Z","dependencies_parsed_at":"2022-08-29T21:11:32.156Z","dependency_job_id":null,"html_url":"https://github.com/mihirsoni/react-native-android-speech","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mihirsoni%2Freact-native-android-speech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mihirsoni%2Freact-native-android-speech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mihirsoni%2Freact-native-android-speech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mihirsoni%2Freact-native-android-speech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mihirsoni","download_url":"https://codeload.github.com/mihirsoni/react-native-android-speech/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244925091,"owners_count":20532873,"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":[],"created_at":"2024-01-05T20:17:17.605Z","updated_at":"2025-03-22T07:31:14.940Z","avatar_url":"https://github.com/mihirsoni.png","language":"Java","readme":"React Native Android Text To Speech\n\nA react native android wrapper for Text To speech\n\n## Purpose \n\nCurrently , React Native doesn't have inbuilt support for TextToSpeech library for Android.\n\nBut with help of exposing module in react-native , this wrapper will solve the problem for TTS.\n\n## Setup\n\n* Install Module\n\n```bash\nnpm install --save react-native-android-speech\n```\n\n* `android/settings.gradle`\n\n```gradle\n...\ninclude ':react-native-android-speech'\nproject(':react-native-android-speech').projectDir = new File(settingsDir, '../node_modules/react-native-android-speech')\n```\n\n* `android/app/build.gradle`\n\n```gradle\ndependencies {\n\t...\n\tcompile project(':react-native-android-speech')\n}\n```\n* for React Native Version \u003e= 0.29, register module (in android/app/src/main/java/com/[app name]/MainApplication.java)\n```java\n...\nimport com.mihir.react.tts.*; // Import package\n\npublic class MainApplication extends Application implements ReactApplication {\n\t...\n\t\n    @Override\n    protected List\u003cReactPackage\u003e getPackages() {\n      return Arrays.\u003cReactPackage\u003easList(\n          ...,\n          new RCTTextToSpeechModule()\n      );\n    }\n}\n```\n\n* for React Native Version \u003c 0.29, register module (in android/app/src/main/java/com/[app name]/MainActivity.java)\n\n```java\n...\nimport com.mihir.react.tts.*; // Import package\n\npublic class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {\n\t...\n\t\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        mReactRootView = new ReactRootView(this);\n\n        mReactInstanceManager = ReactInstanceManager.builder()\n                .setApplication(getApplication())\n                .setBundleAssetName(\"index.android.bundle\")\n                .setJSMainModuleName(\"index.android\")\n                .addPackage(new MainReactPackage())\n                .addPackage(new RCTTextToSpeechModule())           // Add any extra modules here\n                .setUseDeveloperSupport(BuildConfig.DEBUG)\n                .setInitialLifecycleState(LifecycleState.RESUMED)\n                .build();\n\n        mReactRootView.startReactApplication(mReactInstanceManager, \"YourProject\", null);\n\n        setContentView(mReactRootView);\n    }\n}\n```\n\n## Usage\n\nCurrently there following functionality available. All below functions return Promise , with proper error codes.\n\n- getLocales\n- checkLanguageAvailability(language)\n- downloadTTSVoice()\n- speak(args)\n- isSpeaking\n- shutDown\n- stop\n\n### Importing module\n\n\n```js\nvar tts = require('react-native-android-speech')\n\n```\n\n### getLocales()\nReturns all available langauges from TTS make sure that exists in device also.\n\n## Example \n\n```js\ntts.getLocales().then(locales=\u003e{\n    console.log(locales)\n});\n\n```\n\n### checkLanguageAvailability(language)\nreturns whether a language is available on the device TTS engine\n\n## Example \n\n```js\ntts.checkLanguageAvailability('ko').then(result =\u003e {\n    console.log('TTS voice availability for Korean is '+result);\n});\n\n```\n\n### downloadTTSVoice()\nopens the TTS download page on the device\n\n## Example \n\n```js\ntts.checkLanguageAvailability('ko').then(result =\u003e {\n    if (!result) {\n        downloadTTSVoice();\n    }\n});\n\n```\n\n### speak()\n\n## Example\n\n```js\ntts.speak({\n    text:'Please provide some text to speak.', // Mandatory\n    pitch:1.5, // Optional Parameter to set the pitch of Speech,\n    forceStop : false , //  Optional Parameter if true , it will stop TTS if it is already in process\n    language : 'en', // Optional Paramenter Default is en you can provide any supported lang by TTS\n    country : 'US' // Optional Paramenter Default is null, it provoques that system selects its default\n}).then(isSpeaking=\u003e{\n    //Success Callback\n    console.log(isSpeaking);\n}).catch(error=\u003e{\n    //Errror Callback\n    console.log(error)\n});\n\n```\n\n### isSpeaking()\n\nThis method will help to figure out whether TTS engine is currently speaking or not.\n\n## Example\n\n```js\ntts.isSpeaking()\n.then(isSpeaking=\u003e{\n    //Callback\n    console.log(isSpeaking);\n})\n.catch(error=\u003e{\n    //if it fails \n    console.log(error)\n});\n\n```\n\n### Stop()\n\nStop currently processing speech. Return True/False\n\n## Example\n\n```js\ntts.shutDown()\n.then(isStopped=\u003e{\n    console.log(isStopped);\n})\n.catch(error=\u003e{\n    console.log(error);\n});\n\n```\n\n### shutDown()\n\nShutdown TTS Engine\n\n## Example\n\n```js\ntts.shutDown()\n.then(shutDown=\u003e{\n    //Callback \n    console.log(shutDown);\n})\n.catch(error=\u003e{\n    console.log(error)\n});\n\n```\n\n## Changes\nPR's are welcome\n\n## Todo \n\n* [ ]  providing UternceId and callback\n* [ ]  Differnt Voices\n* [ ]  Custome Engines \n* [ ]  Support Speech To Text\n\n\n## LICENSE\n\nMIT\n","funding_links":[],"categories":["Components","\u003ca name=\"Network:-Native-Modules\"\u003eNetwork: Native Modules\u003c/a\u003e"],"sub_categories":["System"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmihirsoni%2Freact-native-android-speech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmihirsoni%2Freact-native-android-speech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmihirsoni%2Freact-native-android-speech/lists"}