
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@cantoo/speech-recognition
Advanced tools
Capacitor community plugin for speech recognition.
| Maintainer | GitHub | Social |
|---|---|---|
| Priyank Patel | priyankpat | @priyankpat_ |
| Matteo Padovano | mrbatista | @mrba7ista |
Maintenance Status: Actively Maintained
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 requires the following usage descriptions be added and filled out for your app in Info.plist:
NSSpeechRecognitionUsageDescription (Privacy - Speech Recognition Usage Description)NSMicrophoneUsageDescription (Privacy - Microphone Usage Description)No further action required.
available()start(...)stop()getSupportedLanguages()isListening()checkPermissions()requestPermissions()addListener('endOfSegmentedSession', ...)addListener('segmentResults', ...)addListener('partialResults', ...)addListener('listeningState', ...)removeAllListeners()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();
available() => Promise<{ available: boolean; }>
This method will check if speech recognition feature is available on the device.
Returns: Promise<{ available: boolean; }>
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.
| Param | Type |
|---|---|
options | UtteranceOptions |
Returns: Promise<{ matches?: string[]; }>
stop() => Promise<void>
This method will stop listening for utterance
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: Promise<{ languages: any[]; }>
isListening() => Promise<{ listening: boolean; }>
This method will check if speech recognition is listening.
Returns: Promise<{ listening: boolean; }>
Since: 5.1.0
checkPermissions() => Promise<PermissionStatus>
Check the speech recognition permission.
Returns: Promise<PermissionStatus>
Since: 5.0.0
requestPermissions() => Promise<PermissionStatus>
Request the speech recognition permission.
Returns: Promise<PermissionStatus>
Since: 5.0.0
addListener(eventName: 'endOfSegmentedSession', listenerFunc: () => void) => Promise<PluginListenerHandle>
Called when allowForSilence set to > 0 and segmented session has ended. (Android only)
On Android it doesn't work if popup is true.
| Param | Type |
|---|---|
eventName | 'endOfSegmentedSession' |
listenerFunc | () => void |
Returns: Promise<PluginListenerHandle>
Since: 6.0.2
addListener(eventName: 'segmentResults', listenerFunc: (data: { matches: string[]; }) => void) => Promise<PluginListenerHandle>
Called when allowForSilence set to > 0 and segment result received. (Android only)
On Android it doesn't work if popup is true.
Provides segment result.
| Param | Type |
|---|---|
eventName | 'segmentResults' |
listenerFunc | (data: { matches: string[]; }) => void |
Returns: Promise<PluginListenerHandle>
Since: 6.0.2
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.
| Param | Type |
|---|---|
eventName | 'partialResults' |
listenerFunc | (data: { matches: string[]; }) => void |
Returns: Promise<PluginListenerHandle>
Since: 2.0.2
addListener(eventName: 'listeningState', listenerFunc: (data: { status: 'started' | 'stopped'; }) => void) => Promise<PluginListenerHandle>
Called when listening state changed.
| Param | Type |
|---|---|
eventName | 'listeningState' |
listenerFunc | (data: { status: 'started' | 'stopped'; }) => void |
Returns: Promise<PluginListenerHandle>
Since: 5.1.0
removeAllListeners() => Promise<void>
Remove all the listeners that are attached to this plugin.
Since: 4.0.0
| Prop | Type | Description |
|---|---|---|
language | string | key returned from getSupportedLanguages() |
maxResults | number | maximum number of results to return (5 is max) |
prompt | string | prompt message to display on popup (Android only) |
popup | boolean | display popup window when listening for utterance (Android only) |
partialResults | boolean | return partial results if found |
allowForSilence | number | allows milliseconds of silence during recording. Needs number over 0 (Android only) You need to listen to segmentResults to receive the data. On Android it doesn't work if popup is true. |
| Prop | Type | Description | Since |
|---|---|---|---|
speechRecognition | PermissionState | 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 |
| Prop | Type |
|---|---|
remove | () => Promise<void> |
'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'
FAQs
A native plugin for speech recognition
We found that @cantoo/speech-recognition demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.