Ionic 3 create application text to speech / speech to text.
application
TTS
STT
- By Code solution
- Jan 20th, 2021
- 0 comments
- 0
We create the application to convert voice to text/text to voice.
Create a project run this command:
ionic start <project name> blank
then move into the newly created directory:
cd <project name>
Install required js and CSS file
$ ionic cordova plugin add cordova-plugin-tts $ npm install --save @ionic-native/text-to-speech $ ionic cordova plugin add cordova-plugin-speechrecognition $ npm install --save @ionic-native/speech-recognition
Open app.js in src ->app-> app.module.ts and add code
import { SpeechRecognition } from '@ionic-native/speech-recognition'; import { TextToSpeech } from '@ionic-native/text-to-speech' providers: [ StatusBar, SplashScreen, SpeechRecognition, TextToSpeech, {provide: ErrorHandler, useClass: IonicErrorHandler} ]
Open app.js in src ->home-> home.html and add code
<ion-header> <ion-navbar [color]="isRecording ? 'danger' : 'secondary'"> <ion-title> Speech to Text </ion-title> </ion-navbar> </ion-header> <ion-content padding> <ion-item> <ion-label stacked>Text</ion-label> <ion-textarea rows="4" [(ngModel)]="text" (ionChange)="onChange(text)"></ion-textarea> </ion-item> <ion-card> <ion-fab right top> <button (click)="startListening()" ion-fab [color]="isRecording ? 'danger' : 'secondary'"> <ion-icon name="mic"></ion-icon> </button> </ion-fab> </ion-card> <ion-list *ngIf="!istext"> <ion-list-header *ngIf="isRecording1"> This is what I understood... </ion-list-header> <ion-item *ngFor="let match of matches" (click)="sayText(match)" text-wrap> {{ match }} </ion-item> </ion-list> <button ion-button block [color]="isRecording ? 'danger' : 'secondary'" (click)="sayText()">Play</button> <button ion-button block [color]="isRecording ? 'secondary' : 'danger'" (click)="stopListening()" *ngIf="isIos()">Stop Sound</button> </ion-content>
Open app.js in src ->home-> home.ts and add code
import { Component, OnInit } from '@angular/core'; import { NavController, Platform } from 'ionic-angular'; import { SpeechRecognition } from '@ionic-native/speech-recognition'; import { ChangeDetectorRef } from '@angular/core'; import {TextToSpeech} from '@ionic-native/text-to-speech'; @Component({ selector: 'page-home', templateUrl: 'home.html' }) export class HomePage implements OnInit{ matches: String[]; isRecording = false; isRecording1 = false; istext = false; recognition: any; text: string; public words: any constructor(private navCtrl: NavController, private speechRecognition: SpeechRecognition, private cd: ChangeDetectorRef, private tts: TextToSpeech, private plt: Platform) { } isIos() { return this.plt.is('ios'); } onChange(value){ console.log(value); if(value){ this.istext = true; }else{ this.istext = false; } } stopListening() { this.speechRecognition.stopListening().then(() => { this.isRecording = false; }); } ngOnInit(){ this.speechRecognition.hasPermission() .then((hasPermission: boolean) => { if (!hasPermission) { this.speechRecognition.requestPermission(); } }); } // this.getPermission(); startListening() { this.isRecording = true; let options = { language: 'en-US' } this.speechRecognition.startListening().subscribe(matches => { this.matches = matches; this.cd.detectChanges(); this.isRecording1 = true; this.isRecording = false; }); } }
Voice to Text/Text to voice application code are done you add platform in your application code platform add command:
ionic cordova platform add android/ios/windows
Build and Run command
ionic cordova build android/ios/windows ionic cordova run android/ios/windows
See Demo: https://play.google.com/store/apps/details?id=com.wapptech.pronunciation
thank you