UNPKG

@project-sunbird/open-speech-streaming-client

Version:
125 lines (83 loc) 4.09 kB
# Web Client library for Open Speech Streaming API [![NPM package](https://badgen.net/github/release/Naereen/Strapdown.js)](https://www.npmjs.com/package/@project-sunbird/open-speech-streaming-client) 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/][Open Speech 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](https://open-speech-ekstep.github.io/asr_streaming_service/) for architecture and other details. [Open Speech API]: https://open-speech-ekstep.github.io/asr_model_api/ ## Table of Contents - [Getting Started](#getting-started) - [How to Install](#how-to-install) - [In Node.js](#in-nodejs) - [In React Native](#in-react-native) - [Quick Start](#quick-start) - [Reference](#reference) - [Examples](#examples) - [React Example](#react-example) - [Getting Help](#getting-help) ## Getting Started ## How to Install ### In Node.js The preferred way to install the client SDK for Node.js is to use the [npm](http://npmjs.org) package manager for Node.js. Run the following into a terminal window: ```sh npm i @project-sunbird/open-speech-streaming-client ``` ### In React Native To use the client SDK in a react native project, first install the SDK using npm: ```sh npm i @project-sunbird/open-speech-streaming-client ``` Then within your application, you can reference the react native compatible version of the SDK with the following: ```javascript import { StreamingClient, SocketStatus } from '@project-sunbird/open-speech-streaming-client'; ``` ## Quick Start 1. Import the StreamingClient module and create an instance. ```javascript import {StreamingClient,SocketStatus} from '@project-sunbird/open-speech-streaming-client' //Create instance of streaming client. const streamingClient= new StreamingClient(); ``` 2. Connect to the streaming server with the url and the language required. ```javascript //Connect to inferencing server const inferenceServerURL = '<inferencing-server-url>'; const language = '<language>'; //(eg: 'en') streaming.connect(inferenceServerURL, language, function (action, id) { if (action === SocketStatus.CONNECTED) { // Once connection is succesful, start streaming streaming.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); } }) ``` 3. If punctuation needed in the client sdk, do the following: [Note: Use this inside the condition block(action === SocketStatus.TERMINATED)] ```javascript streaming.punctuateText('<Text to punctuate>', '<punctuation-url>', (status, text) => { console.log("Punctuted Text:", text); }, (status, error) => { console.log("Failed to punctuate", status, error); }); ``` ## Reference SocketStatus has two possible states.`CONNECTED` and `TERMINATED` ------------------------ ## Examples This repo contains samples in examples directory. ### React Example _Location_: [examples/react-example](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_ ## Getting Help The best way to interact with our team is through GitHub. Please open an issue in github.