This package has not been maintained for a long time.
Please use it by copying the code.
Angular 7+ speech synthesis service (based on browser implementation such as Chrome).
See storybook.
$ yarn add @kamiazya/ngx-speech-synthesis
$ npm install --save @kamiazya/ngx-speech-synthesis
import { NgModule } from '@angular/core';
import {
SpeechSynthesisModule,
} from '@kamiazya/ngx-speech-synthesis';
@NgModule({
declarations: [
AppComponent,
AppDemoComponent
],
imports: [
BrowserModule,
SpeechSynthesisModule.forRoot({
lang: 'en',
volume: 1.0,
pitch: 1.0,
rate: 1.0,
}),
],
bootstrap: [AppComponent]
})
export class AppModule { }
import { Component, NgModule } from '@angular/core';
import {
SpeechSynthesisUtteranceFactoryService,
SpeechSynthesisService,
} from '@kamiazya/ngx-speech-synthesis';
@Component({
template: `
<div>
<p *ngFor="let text of contents">{{text}}</p>
</div>
<div>
<button (click)="speech()">
speech
</button>
<button (click)="resume()">
resume
</button>
<button (click)="pause()">
pause
</button>
<button (click)="cancel()">
cancel
</button>
</div>
`,
providers: [
SpeechSynthesisUtteranceFactoryService,
],
})
export class AppDemoComponent {
contents = [
'Peter Piper picked a peck of pickled peppers.',
'A peck of pickled peppers Peter Piper picked.',
'If Peter Piper picked a peck of pickled peppers,',
'Where\'s the peck of pickled peppers Peter Piper picked?',
];
constructor(
public f: SpeechSynthesisUtteranceFactoryService,
public svc: SpeechSynthesisService,
) { }
speech() {
for (const text of this.contents) {
const v = this.f.text(text);
this.svc.speak(this.f.text(text));
}
}
cancel() {
this.svc.cancel();
}
pause() {
this.svc.pause();
}
resume() {
this.svc.resume();
}
}
Run yarn start
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run yarn storybook
for a dev server. Navigate to http://localhost:9001/
. The app will automatically reload if you change any of the source files.