A library for using Web Speech API with Angular
npm install @ng-web-apis/speech


This is a library to use Web Speech API with Angular.
If you do not have @ng-web-apis/common:
``bash`
npm i @ng-web-apis/common
Now install the package:
`bash`
npm i @ng-web-apis/speech
Web Speech API consists of speech synthesis and speech recognition.
1. Use SpeechSynthesisModule to gain access to TextToSpeechDirective and WaSpeechUtterancePipe. Use them like the
example below for speech synthesis functionality:
`html`
class="textarea"
[waTextToSpeech]="text | waUtterance: options"
[waTextToSpeechPaused]="paused"
[(ngModel)]="text"
(waTextToSpeechEnd)="onEnd()"
/>
2. For speech recognition use WaSpeechRecognitionService in supporting browsers (only Chrome at this point)
WaSpeechRecognitionService provides access to speech recognition in familiar RxJS Observable model. To work with the
stream there are certain operators included in this library:
1. confidenceAbove to filter recognitions to desired level of confidencecontinuous
2. to enable continuous mode of recognitionfinal
3. to only include final recognition resultsfirstAlternative
4. to quickly retrieve first alternative (which typically is the only one anyway)skipUntilSaid
5. to ignore stream until certain phrase is saidtakeUntilSaid
6. to stop listening to stream upon certain phraseisSaid
7. utility function to check if a phrase is in SpeechRecognitionResult[]
You may want to use repeat() and retry() in your stream to restart speech recognition. It is stopped after some time
and error is thrown if nothing was said for a while.
Here are a few examples:
`ts`
// Record speech after "Okay Angular" is said
this.stream$ = this.speechRecognition$.pipe(
retry(),
repeat(),
skipUntilSaid('Okay Angular'),
takeUntilSaid('Thank you Angular'),
repeat(),
final(),
continuous(),
);
`ts`
// Fire photon torpedoes with a voice command
this.torpedoes$ = this.speechRecognition$.pipe(retry(), repeat(), filter(isSaid('Fire photon torpedoes')));
There are also a couple of tokens included in this library:
1. WA_SPEECH_RECOGNITION_MAX_ALTERNATIVES to configure number of alternatives presented in SpeechRecognitionResultWA_SPEECH_RECOGNITION_SUPPORT
2. to check if browser supports speech recognitionWA_SPEECH_SYNTHESIS_SUPPORT
3. to check if browser supports speech synthesisWA_SPEECH_SYNTHESIS_VOICES` to get the list of available voices for speech synthesis
4.
Other Web APIs for Angular by
@ng-web-apis