mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-03-22 21:12:50 +08:00
feat(speech-recognition): add SpeechRecognition plugin (#897)
This commit is contained in:
parent
9c75a06131
commit
7c30718369
src
@ -101,6 +101,7 @@ import { Shake } from './plugins/shake';
|
|||||||
import { Sim } from './plugins/sim';
|
import { Sim } from './plugins/sim';
|
||||||
import { SMS } from './plugins/sms';
|
import { SMS } from './plugins/sms';
|
||||||
import { SocialSharing } from './plugins/socialsharing';
|
import { SocialSharing } from './plugins/socialsharing';
|
||||||
|
import { SpeechRecognition } from './plugins/speech-recognition';
|
||||||
import { SpinnerDialog } from './plugins/spinnerdialog';
|
import { SpinnerDialog } from './plugins/spinnerdialog';
|
||||||
import { Splashscreen } from './plugins/splashscreen';
|
import { Splashscreen } from './plugins/splashscreen';
|
||||||
import { SQLite } from './plugins/sqlite';
|
import { SQLite } from './plugins/sqlite';
|
||||||
@ -220,6 +221,7 @@ export * from './plugins/shake';
|
|||||||
export * from './plugins/sim';
|
export * from './plugins/sim';
|
||||||
export * from './plugins/sms';
|
export * from './plugins/sms';
|
||||||
export * from './plugins/socialsharing';
|
export * from './plugins/socialsharing';
|
||||||
|
export * from './plugins/speech-recognition';
|
||||||
export * from './plugins/spinnerdialog';
|
export * from './plugins/spinnerdialog';
|
||||||
export * from './plugins/splashscreen';
|
export * from './plugins/splashscreen';
|
||||||
export * from './plugins/sqlite';
|
export * from './plugins/sqlite';
|
||||||
@ -342,6 +344,7 @@ window['IonicNative'] = {
|
|||||||
Splashscreen,
|
Splashscreen,
|
||||||
SQLite,
|
SQLite,
|
||||||
StatusBar,
|
StatusBar,
|
||||||
|
SpeechRecognition,
|
||||||
Stepcounter,
|
Stepcounter,
|
||||||
StreamingMedia,
|
StreamingMedia,
|
||||||
Stripe,
|
Stripe,
|
||||||
|
156
src/plugins/speech-recognition.ts
Normal file
156
src/plugins/speech-recognition.ts
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
import { Plugin, Cordova } from './plugin';
|
||||||
|
import { Observable } from 'rxjs/Observable';
|
||||||
|
|
||||||
|
export type SpeechRecognitionListeningOptions = SpeechRecognitionListeningOptionsIOS | SpeechRecognitionListeningOptionsAndroid;
|
||||||
|
|
||||||
|
export interface SpeechRecognitionListeningOptionsIOS {
|
||||||
|
/**
|
||||||
|
* used language for recognition (default `"en-US"`)
|
||||||
|
*/
|
||||||
|
language?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* umber of return matches (default `5`)
|
||||||
|
*/
|
||||||
|
matches?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allow partial results to be returned (default `false`)
|
||||||
|
*/
|
||||||
|
showPartial?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SpeechRecognitionListeningOptionsAndroid {
|
||||||
|
/**
|
||||||
|
* used language for recognition (default `"en-US"`)
|
||||||
|
*/
|
||||||
|
language?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* number of return matches (maximum number of matches)
|
||||||
|
*/
|
||||||
|
matches?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* displayed prompt of listener popup window
|
||||||
|
*/
|
||||||
|
prompt?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* display listener popup window with prompt (default `true`)
|
||||||
|
*/
|
||||||
|
showPopup?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name SpeechRecognition
|
||||||
|
* @description
|
||||||
|
* This plugin does speech recognition using cloud services
|
||||||
|
*
|
||||||
|
* @usage
|
||||||
|
* ```
|
||||||
|
* import { SpeechRecognition } from 'ionic-native';
|
||||||
|
*
|
||||||
|
* // Check feature available
|
||||||
|
* SpeechRecognition.isRecognitionAvailable()
|
||||||
|
* .then((available: boolean) => console.log(available))
|
||||||
|
*
|
||||||
|
* // Start the recognition process
|
||||||
|
* SpeechRecognition.startListening(options)
|
||||||
|
* .subscribe(
|
||||||
|
* (matches: Array<string>) => console.log(matches),
|
||||||
|
* (onerror) => console.log('error:', onerror)
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
* // Stop the recognition process (iOS only)
|
||||||
|
* SpeechRecognition.stopListening()
|
||||||
|
*
|
||||||
|
* // Get the list of supported languages
|
||||||
|
* SpeechRecognition.getSupportedLanguages()
|
||||||
|
* .then(
|
||||||
|
* (languages: Array<string>) => console.log(languages),
|
||||||
|
* (error) => console.log(error)
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
* // Check permission
|
||||||
|
* SpeechRecognition.hasPermission()
|
||||||
|
* .then((hasPermission: boolean) => console.log(hasPermission))
|
||||||
|
*
|
||||||
|
* // Request permissions
|
||||||
|
* SpeechRecognition.requestPermission()
|
||||||
|
* .then(
|
||||||
|
* () => console.log('Granted'),
|
||||||
|
* () => console.log('Denied')
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
@Plugin({
|
||||||
|
pluginName: 'SpeechRecognition',
|
||||||
|
plugin: 'cordova-plugin-speechrecognition',
|
||||||
|
pluginRef: 'plugins.speechRecognition',
|
||||||
|
repo: 'https://github.com/pbakondy/cordova-plugin-speechrecognition',
|
||||||
|
platforms: ['Android', 'iOS']
|
||||||
|
})
|
||||||
|
export class SpeechRecognition {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check feature available
|
||||||
|
* @return {Promise<boolean>}
|
||||||
|
*/
|
||||||
|
@Cordova()
|
||||||
|
static isRecognitionAvailable(): Promise<boolean> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start the recognition process
|
||||||
|
* @return {Promise< Array<string> >} list of recognized terms
|
||||||
|
*/
|
||||||
|
@Cordova({
|
||||||
|
callbackOrder: 'reverse',
|
||||||
|
observable: true,
|
||||||
|
|
||||||
|
})
|
||||||
|
static startListening(options?: SpeechRecognitionListeningOptions): Observable<Array<string>> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop the recognition process
|
||||||
|
*/
|
||||||
|
@Cordova({
|
||||||
|
platforms: ['iOS']
|
||||||
|
})
|
||||||
|
static stopListening(): Promise<void> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of supported languages
|
||||||
|
* @return {Promise< Array<string> >} list of languages
|
||||||
|
*/
|
||||||
|
@Cordova()
|
||||||
|
static getSupportedLanguages(): Promise<Array<string>> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check permission
|
||||||
|
* @return {Promise<boolean>} has permission
|
||||||
|
*/
|
||||||
|
@Cordova()
|
||||||
|
static hasPermission(): Promise<boolean> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request permissions
|
||||||
|
* @return {Promise<void>}
|
||||||
|
*/
|
||||||
|
@Cordova()
|
||||||
|
static requestPermission(): Promise<void> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user