Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/capacitor-community/speech-recognition
https://github.com/capacitor-community/speech-recognition
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/capacitor-community/speech-recognition
- Owner: capacitor-community
- License: mit
- Created: 2020-06-24T23:07:24.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-18T17:09:59.000Z (7 months ago)
- Last Synced: 2024-04-27T07:26:19.616Z (7 months ago)
- Language: Java
- Size: 509 KB
- Stars: 74
- Watchers: 11
- Forks: 42
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-capacitorjs - @capacitor-community/speech-recognition - Capacitor community plugin for speech recognition. (Plugins / Community Plugins)
- awesome-capacitor - Speech recognition - A native plugin for speech recognition. (Community plugins)
README
# Capacitor Speech Recognition Plugin
Capacitor community plugin for speech recognition.
## Maintainers
| Maintainer | GitHub | Social |
| --------------- | ------------------------------------------- | ------------------------------------------------ |
| Priyank Patel | [priyankpat](https://github.com/priyankpat) | [@priyankpat\_](https://twitter.com/priyankpat_) |
| Matteo Padovano | [mrbatista](https://github.com/mrbatista) | [@mrba7ista](https://twitter.com/mrba7ista) |Maintenance Status: Actively Maintained
## Installation
To use npm
```bash
npm install @capacitor-community/speech-recognition
```To use yarn
```bash
yarn add @capacitor-community/speech-recognition
```Sync native files
```bash
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
* [`available()`](#available)
* [`start(...)`](#start)
* [`stop()`](#stop)
* [`getSupportedLanguages()`](#getsupportedlanguages)
* [`isListening()`](#islistening)
* [`checkPermissions()`](#checkpermissions)
* [`requestPermissions()`](#requestpermissions)
* [`addListener('partialResults', ...)`](#addlistenerpartialresults-)
* [`addListener('listeningState', ...)`](#addlistenerlisteningstate-)
* [`removeAllListeners()`](#removealllisteners)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)## Example
```typescript
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()
```typescript
available() => Promise<{ available: boolean; }>
```This method will check if speech recognition feature is available on the device.
**Returns:**
Promise<{ available: boolean; }>
--------------------
### start(...)
```typescript
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()
```typescript
stop() => Promise
```This method will stop listening for utterance
--------------------
### getSupportedLanguages()
```typescript
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()
```typescript
isListening() => Promise<{ listening: boolean; }>
```This method will check if speech recognition is listening.
**Returns:**
Promise<{ listening: boolean; }>
**Since:** 5.1.0
--------------------
### checkPermissions()
```typescript
checkPermissions() => Promise
```Check the speech recognition permission.
**Returns:**
Promise<PermissionStatus>
**Since:** 5.0.0
--------------------
### requestPermissions()
```typescript
requestPermissions() => Promise
```Request the speech recognition permission.
**Returns:**
Promise<PermissionStatus>
**Since:** 5.0.0
--------------------
### addListener('partialResults', ...)
```typescript
addListener(eventName: 'partialResults', listenerFunc: (data: { matches: string[]; }) => void) => Promise
```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('listeningState', ...)
```typescript
addListener(eventName: 'listeningState', listenerFunc: (data: { status: 'started' | 'stopped'; }) => void) => Promise
```Called when listening state changed.
| Param | Type |
| ------------------ | ------------------------------------------------------------------- |
| **`eventName`** |'listeningState'
|
| **`listenerFunc`** |(data: { status: 'started' \| 'stopped'; }) => void
|**Returns:**
Promise<PluginListenerHandle>
**Since:** 5.1.0
--------------------
### removeAllListeners()
```typescript
removeAllListeners() => Promise
```Remove all the listeners that are attached to this plugin.
**Since:** 4.0.0
--------------------
### Interfaces
#### UtteranceOptions
| 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 |#### PermissionStatus
| 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 |#### PluginListenerHandle
| Prop | Type |
| ------------ | ----------------------------------------- |
| **`remove`** |() => Promise<void>
|### Type Aliases
#### PermissionState
'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'