Home

Awesome

Capacitor Speech Recognition Plugin

Capacitor community plugin for speech recognition.

Maintainers

MaintainerGitHubSocial
Priyank Patelpriyankpat@priyankpat_
Matteo Padovanomrbatista@mrba7ista

Maintenance Status: Actively Maintained

Installation

To use npm

npm install @capacitor-community/speech-recognition

To use yarn

yarn add @capacitor-community/speech-recognition

Sync native files

npx cap sync

iOS

iOS requires the following usage descriptions be added and filled out for your app in Info.plist:

Android

No further action required.

Supported methods

<docgen-index> </docgen-index>

Example

import { SpeechRecognition } from "@capacitor-community/speech-recognition";

SpeechRecognition.available();

SpeechRecognition.start({
  language: "en-US",
  maxResults: 2,
  prompt: "Say something",
  partialResults: true,
  popup: true,
});
// listen to partial results
SpeechRecognition.addListener("partialResults", (data: any) => {
  console.log("partialResults was fired", data.matches);
});

// stop listening partial results
SpeechRecognition.removeAllListeners();

SpeechRecognition.stop();

SpeechRecognition.getSupportedLanguages();

SpeechRecognition.checkPermissions();

SpeechRecognition.requestPermissions();

SpeechRecognition.hasPermission();

SpeechRecognition.requestPermission();
<docgen-api> <!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

available()

available() => Promise<{ available: boolean; }>

This method will check if speech recognition feature is available on the device.

Returns: <code>Promise<{ available: boolean; }></code>


start(...)

start(options?: UtteranceOptions | undefined) => Promise<{ matches?: string[]; }>

This method will start to listen for utterance.

if partialResults is true, the function respond directly without result and event partialResults will be emit for each partial result, until stopped.

ParamType
options<code><a href="#utteranceoptions">UtteranceOptions</a></code>

Returns: <code>Promise<{ matches?: string[]; }></code>


stop()

stop() => Promise<void>

This method will stop listening for utterance


getSupportedLanguages()

getSupportedLanguages() => Promise<{ languages: any[]; }>

This method will return list of languages supported by the speech recognizer.

It's not available on Android 13 and newer.

Returns: <code>Promise<{ languages: any[]; }></code>


isListening()

isListening() => Promise<{ listening: boolean; }>

This method will check if speech recognition is listening.

Returns: <code>Promise<{ listening: boolean; }></code>

Since: 5.1.0


checkPermissions()

checkPermissions() => Promise<PermissionStatus>

Check the speech recognition permission.

Returns: <code>Promise<<a href="#permissionstatus">PermissionStatus</a>></code>

Since: 5.0.0


requestPermissions()

requestPermissions() => Promise<PermissionStatus>

Request the speech recognition permission.

Returns: <code>Promise<<a href="#permissionstatus">PermissionStatus</a>></code>

Since: 5.0.0


addListener('partialResults', ...)

addListener(eventName: 'partialResults', listenerFunc: (data: { matches: string[]; }) => void) => Promise<PluginListenerHandle>

Called when partialResults set to true and result received.

On Android it doesn't work if popup is true.

Provides partial result.

ParamType
eventName<code>'partialResults'</code>
listenerFunc<code>(data: { matches: string[]; }) => void</code>

Returns: <code>Promise<<a href="#pluginlistenerhandle">PluginListenerHandle</a>></code>

Since: 2.0.2


addListener('listeningState', ...)

addListener(eventName: 'listeningState', listenerFunc: (data: { status: 'started' | 'stopped'; }) => void) => Promise<PluginListenerHandle>

Called when listening state changed.

ParamType
eventName<code>'listeningState'</code>
listenerFunc<code>(data: { status: 'started' | 'stopped'; }) => void</code>

Returns: <code>Promise<<a href="#pluginlistenerhandle">PluginListenerHandle</a>></code>

Since: 5.1.0


removeAllListeners()

removeAllListeners() => Promise<void>

Remove all the listeners that are attached to this plugin.

Since: 4.0.0


Interfaces

UtteranceOptions

PropTypeDescription
language<code>string</code>key returned from getSupportedLanguages()
maxResults<code>number</code>maximum number of results to return (5 is max)
prompt<code>string</code>prompt message to display on popup (Android only)
popup<code>boolean</code>display popup window when listening for utterance (Android only)
partialResults<code>boolean</code>return partial results if found

PermissionStatus

PropTypeDescriptionSince
speechRecognition<code><a href="#permissionstate">PermissionState</a></code>Permission state for speechRecognition alias. On Android it requests/checks RECORD_AUDIO permission On iOS it requests/checks the speech recognition and microphone permissions.5.0.0

PluginListenerHandle

PropType
remove<code>() => Promise<void></code>

Type Aliases

PermissionState

<code>'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'</code>

</docgen-api>