This package contains the client library to provide real-time streaming functionality for Open Speech API https://open-speech-ekstep.github.io/asr_model_api/. It requires a Socket.io proxy to support it. Details of the proxy can be found /~https://github.com/Open-Speech-EkStep/speech-recognition-open-api-proxy.
Visit Speech Recognititon Streaming API for architecture and other details.
- Getting Started
- How to Install
- In Node.js
- In React Native
- Quick Start
- Reference
- Examples
- React Example
- Getting Help
The preferred way to install the client SDK for Node.js is to use the npm package manager for Node.js. Run the following into a terminal window:
npm i @ai4bharat/open-speech-streaming-client
To use the client SDK in a react native project, first install the SDK using npm:
npm i @ai4bharat/open-speech-streaming-client
Then within your application, you can reference the react native compatible version of the SDK with the following:
import { StreamingClient, SocketStatus } from '@ai4bharat/open-speech-streaming-client';
-
Import the StreamingClient module and create an instance.
import {StreamingClient, SocketStatus} from '@ai4bharat/open-speech-streaming-client' //Create instance of streaming client. const client = new StreamingClient();
-
Connect to the streaming server with the url and the language required.
//Connect to inferencing server const inferenceServerURL = '<inferencing-server-url>'; const language = '<language>'; //(eg: 'en') const streaming_sample_rate = 16000; const post_processors = []; client.connect(inferenceServerURL, language, streaming_sample_rate, post_processors, function (action, id) { if (action === SocketStatus.CONNECTED) { // Once connection is succesful, start streaming client.startStreaming(function (transcript) { // transcript will give you the text which can be used further console.log('transcript:', transcript); }, (e) => { console.log("I got error", e); }) } else if (action === SocketStatus.TERMINATED) { // Socket is closed and punctuation can be done after it. } else { //unexpected failures action on connect. console.log("Action", action, id); } })
-
If punctuation needed in the client sdk, do the following: [Note: Use this inside the condition block(action === SocketStatus.TERMINATED)]
client.punctuateText('<Text to punctuate>', '<punctuation-url>', (status, text) => { console.log("Punctuted Text:", text); }, (status, error) => { console.log("Failed to punctuate", status, error); });
SocketStatus has two possible states.CONNECTED
and TERMINATED
This repo contains samples in examples directory.
Location: examples/react-example
This example has a React implementation of a streaming client.
You can start example by npm start
from inside examples/react-example.
By default, this examples will point to parent repo as SDK so make sure you have dependencies installed on parent project. You can change to point npm by updating package.json
The best way to interact with our team is through GitHub. Please open an issue in github.