@project-sunbird/open-speech-streaming-client
Version:
Streaming client library for EkStep open speech API
125 lines (83 loc) • 4.09 kB
Markdown
[](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.
[]: https://open-speech-ekstep.github.io/asr_model_api/
- [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
[](http://npmjs.org) package manager for Node.js. Run the following
into a terminal window:
```sh
npm i @project-sunbird/open-speech-streaming-client
```
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';
```
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:
[]
```javascript
streaming.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](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.