Getting started with EJ2 TypeScript SpeechToText control
22 Jul 20265 minutes to read
This section explains how to create a simple SpeechToText control and configure its available functionalities in TypeScript, using Essential® JS 2 quickstart seed repository.
This application is integrated with the
webpack.config.jsconfiguration and uses the latest version of the webpack-cli. It requires Node.jsv14.15.0or higher. For more information about webpack and its features, refer to the webpack documentation.
Prerequisites
Before getting started, ensure the following tools are installed on your machine:
| Tool | Version / Notes |
|---|---|
| Node.js | v14.15.0 or higher |
| npm | Bundled with Node.js |
| Git | Required to clone the quickstart repository |
| Visual Studio Code | Recommended code editor |
You can verify your Node.js and npm versions by running:
node -v
npm -vRegistering the license key
Syncfusion® Essential® JS 2 controls require a valid license key from version 16.2.0.41 onwards. Using the controls without a license key will display a license validation message in the browser console.
Steps to register the license key:
- Sign in to the Syncfusion License Portal and copy your license key.
- Register the key in your
src/app/app.tsfile, before instantiating any Syncfusion control:
import { registerLicense } from '@syncfusion/ej2-base';
registerLicense('YOUR_LICENSE_KEY_HERE');For more details on obtaining and registering a license key, refer to the License Key Generation and License Key Registration documentation.
Setup for local development
Clone the Essential® JS 2 quickstart application project from GitHub using the following command line scripts.
git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack
cd ej2-quickstart-webpackAdding Syncfusion® TypeScript SpeechToText package
Syncfusion® TypeScript (Essential® JS 2) packages are available on the npmjs.com public registry. You can install all Syncfusion® TypeScript (Essential® JS 2) controls in a single @syncfusion/ej2 package or individual packages for each control.
Use the following command to install the @syncfusion/ej2-inputs package:
npm install @syncfusion/ej2-inputs --saveThen, install the remaining dependent npm packages using the following command:
npm installAdding CSS reference
Themes for Syncfusion® SpeechToText controls can be applied using CSS files provided through the npm theme package. Install the Fluent 2 theme package using the following command:
npm install @syncfusion/ej2-fluent2-theme --saveThen add the following CSS reference to the src/styles/styles.css file:
@import "../../node_modules/@syncfusion/ej2-fluent2-theme/styles/speech-to-text/index.css";Adding SpeechToText control
Add the SpeechToText control in src/app/app.ts file using the following code.
import { SpeechToText, TextArea, TranscriptChangedEventArgs } from "@syncfusion/ej2-inputs";
// Initializes the SpeechToText control
const speechToText: SpeechToText = new SpeechToText({
transcriptChanged: (args: TranscriptChangedEventArgs) => {
textareaObj.value = args.transcript;
}
});
// Render initialized SpeechToText.
speechToText.appendTo('#speechtotext_default');
const textareaObj: TextArea = new TextArea({
rows: 5,
cols: 50,
value: '',
resizeMode: 'None',
placeholder: 'Transcribed text will be shown here...'
});
textareaObj.appendTo('#textareaInst');<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 - SpeechToText</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta name="description" content="Essential JS 2" />
<meta name="author" content="Syncfusion" />
<link href="https://cdn.syncfusion.com/ej2/34.1.29/ej2-base/styles/tailwind3.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/34.1.29/ej2-buttons/styles/tailwind3.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/34.1.29/ej2-popups/styles/tailwind3.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/34.1.29/ej2-inputs/styles/tailwind3.css" rel="stylesheet" />
<!--style reference from app-->
<link href="index.css" rel="stylesheet" />
<!--system js reference and configuration-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id="container">
<button id="speechtotext_default"></button>
<textarea id="textareaInst"></textarea>
</div>
</body>
<style>
#container {
margin: 50px auto;
gap: 20px;
display: flex;
flex-direction: column;
align-items: center;
}
</style>
</html>The
SpeechToTextcontrol requires an internet connection and using a browser that supportsSpeechRecognitionfrom the Web Speech API.
Run the application
The npm start command compiles the TypeScript source files and starts the webpack development server. Run the following command:
npm startOpen http://localhost:8080 (or the port shown in the terminal) in a browser. You should see a SpeechToText control rendered with the default layout.