1.0.10 • Published 2 years ago

@project-sunbird/open-speech-streaming-client v1.0.10

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Web Client library for Open Speech Streaming API

NPM package

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.

Table of Contents

Getting Started

How to Install

In Node.js

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 @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:

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:

import { StreamingClient, SocketStatus } from '@project-sunbird/open-speech-streaming-client';

Quick Start

  1. Import the StreamingClient module and create an instance.

    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.

//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);
    }
})

```
  1. 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

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.

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago