🚀 DAY 5 OF LAUNCH WEEK:Introducing Webhook Events for Alert Changes.Learn more →
Socket
Book a DemoInstallSign in
Socket

@cantoo/speech-recognition

Package Overview
Dependencies
Maintainers
5
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cantoo/speech-recognition

A native plugin for speech recognition

latest
Source
npmnpm
Version
7.0.4
Version published
Maintainers
5
Created
Source

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:

  • NSSpeechRecognitionUsageDescription (Privacy - Speech Recognition Usage Description)
  • NSMicrophoneUsageDescription (Privacy - Microphone Usage Description)

Android

No further action required.

Supported methods

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();

available()

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

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

Returns: Promise<{ available: boolean; }>

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
optionsUtteranceOptions

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

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: Promise<{ languages: any[]; }>

isListening()

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

This method will check if speech recognition is listening.

Returns: Promise<{ listening: boolean; }>

Since: 5.1.0

checkPermissions()

checkPermissions() => Promise<PermissionStatus>

Check the speech recognition permission.

Returns: Promise<PermissionStatus>

Since: 5.0.0

requestPermissions()

requestPermissions() => Promise<PermissionStatus>

Request the speech recognition permission.

Returns: Promise<PermissionStatus>

Since: 5.0.0

addListener('endOfSegmentedSession', ...)

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.

ParamType
eventName'endOfSegmentedSession'
listenerFunc() => void

Returns: Promise<PluginListenerHandle>

Since: 6.0.2

addListener('segmentResults', ...)

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.

ParamType
eventName'segmentResults'
listenerFunc(data: { matches: string[]; }) => void

Returns: Promise<PluginListenerHandle>

Since: 6.0.2

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'partialResults'
listenerFunc(data: { matches: string[]; }) => void

Returns: Promise<PluginListenerHandle>

Since: 2.0.2

addListener('listeningState', ...)

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

Called when listening state changed.

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

Returns: Promise<PluginListenerHandle>

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
languagestringkey returned from getSupportedLanguages()
maxResultsnumbermaximum number of results to return (5 is max)
promptstringprompt message to display on popup (Android only)
popupbooleandisplay popup window when listening for utterance (Android only)
partialResultsbooleanreturn partial results if found
allowForSilencenumberallows 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.

PermissionStatus

PropTypeDescriptionSince
speechRecognitionPermissionStatePermission 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() => Promise<void>

Type Aliases

PermissionState

'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'

Keywords

capacitor

FAQs

Package last updated on 14 Nov 2025

Did you know?

Socket

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.

Install

Related posts