EnableX brings in Live Transcription of Video Sessions. All end-points requesting live transcription, start receiving Speech to Text contents of all actively talking users in the Video room through a notification event. This is helpful in circumstances where participants have limited language proficiency or they have difficulty in hearing because of a noisy background.

Table of Contents

Overview

Using Live Transcription feature all active talkers’ speech in a video room can be converted to text content and the content may be sent out to each user subscribing to receive it. Transcription process starts when first user requests for it till the last user opts out of it. So, the text content generated through a single transcription process gets broadcasted to each user requested it.

Service Subscription

Live Transcription is a subscription based service. Connect to Sales/Account Manager for subscription.

Live Transcription Settings in Room

If subscription is enabled, all Video Rooms will be Live-Transcription enabled automatically. However, you can disable it for some room and qualify it further to meet your requirement using room level “settings”.

  • live.transcription.language: String. Required. Language Code. The Primary language of communication. Language Codes are given later in the document.  
  • live_transcription.auto_transcribe: Boolean, true or false. Default false. Set it to true, the transcription process starts automatically as session starts and all text contents gets saved in a file. This file is made available post session through API.
  • live_transcription.enable: Boolean, true or false. Default true. Set to false if transcription is not needed in a Room. If subscribed, live transcription is enabled in each room by default.

Example: Room Definition JSON Payload to live transcription settings.

{
  "name": "HLS Trial",
  "owner_ref": "XOXO",
  "settings": {
    "description": "HLS Trial",
    "mode": "group",
    "scheduled": false,
    "adhoc": false,
    "duration": 30,
    "moderators": "1",
    "participants": "2",
    "audiences": 6,
    "auto_recording": false,
    "quality": "SD",
    "live_transcription": {
        "language": "english_us",
        "auto_transcribe": true,
        "enable": true
    } 

  }
}

Note: If Live Transcription is not subscribed, room definition with related settings is not permitted.  

Methods & Notifications

Apart from auto start settings of Live Transcription, it can be started or stopped using SDK method calls.

When SDK method is called to start Live Transcription, it initiates it and subscribes for the feed to receive. If the transcription process is already started in the room, it simply subscribes it. So, any new user subsequently executes command to start, only subscribes to it.

On the other hand, when stop command is executes, the user unsubscribes the feed and he doesn’t receive transcribed content thereafter. When the last subscribed user stops subscription, transcription process stops in the room.

Note that if transcription is automatically started at room-level to save, the process doesn’t stop when last user stops. It only gets stopped at the end of the session.

Start Live Transcription

To start live transcription, following SDK method may be called from an end point. First execution of this method from any end-point to start the live-transcription process in the Video Room. Also, it subscribes the end point to receive text speech contents. Subsequently the same method call from other end-points only subscribes to receive text speech contents.

When only one end-points starts the process and receives its called self-transcription process. On subsequent request it gets promoted to room-level-transcription.

Methods:

  • -(void)startLiveTranscription:(NSString* _Nullable)languge; – To start self transcription.
  • -(void)startLiveTranscriptionForRoom:(NSString* _Nullable)languge; – To start room level transcription.

Parameters:

  • language – Optional. Default english_us. Use one of the string given in a long language list of enumerated. Its the language that you want the Speech Recognition Engine to recognize for you.

Delegate Methods:

  • -room:didSelfTranscriptionOn – It is to notify that self-transcription is enabled.
  • room:didRoomTranscriptionOn – It is to notify when room-level-subscription is enabled. This is sent out to all.
  • -room:room didACKStartLiveTranscription – Its an acknowledgement to the user who executed the method.
  • -room:didTranscriptionEvents – This is to notify when speech to text contents are in recognising and recognised state. It brings JSON Data with following keys:
    • type – Its either speech_recognising or speech_recognised.
      • speech_recognising is an intermediate event when the audio is being recognized by the speech engine.
      • speech_recognised – This is when the entire audio is recognized. Normally this happens whenever there is some pause or speech end is detected by the speech engine.
    • text – The transcribed text
    • duration – Duration from the offset the speech has been identified.
    • clientId – Cliend ID of the user whose speech is recognized.
// Start Transcription
[enxRoom startLiveTranscriptionForRoom:@“english_us”];
 

- (void)room:(EnxRoom* _Nullable)room didRoomTranscriptionOn:(NSArray *_Nonnull)data {
	// Room-Level  transcription is on
}
    
- (void)room:(EnxRoom* _Nullable)room didSelfTranscriptionOn:(NSArray *_Nonnull)data {
	// Self transcription is on    
}

- (void)room:(EnxRoom* _Nullable)room didTranscriptionEvents:(NSArray *_Nonnull)data {
	// Speech Recognising or Recognized events with transcribed data   
}

Error Codes:

ErrorDescription
3002Live Transcription subscription is not enabled
3002Live Transcription already in progress

Stop Live Transcription

The following method call unsubscribes an end-point from receiving live-transcription content. The transcription process ends in Video Room when all end-points requests to stop receiving content.

However, if auto-transcribe option is enabled at room level, then the transcription process doesn’t stop here. It continues till end of session.

Method: -(void)stopLiveTranscription;

Delegate Methods

  • -room:didSelfTranscriptionOff – It is called when self-transcription is turned off.
  • -room:didRoomTranscriptionOff – It is to called when room-level-subscription is turned off. It is sent to all users.
  • -room:didACKStopLiveTranscription – It is to acknowledge stop transcription request is received.
// Stop Transcription
[enxRoom stopLiveTranscription];
 

- (void)room:(EnxRoom* _Nullable)room didRoomTranscriptionOff:(NSArray *_Nonnull)data {
	// Room-Level transcription is turned off
}
    
- (void)room:(EnxRoom* _Nullable)room didSelfTranscriptionOff:(NSArray *_Nonnull)data {
	// Self transcription is turned off    
}

Error Codes:

ErrorDescription
3001Live Transcription request not found