Skip to content

Commit

Permalink
Merge branch 'ENDOC-298' of https://github.com/AgoraIO/Doc-Source-Pri…
Browse files Browse the repository at this point in the history
…vate into staging
  • Loading branch information
atovpeko committed Aug 5, 2024
2 parents a69136a + adf48d7 commit afb4450
Show file tree
Hide file tree
Showing 38 changed files with 1,326 additions and 1 deletion.
Binary file added assets/images/real-time-stt/callback-payload.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/real-time-stt/real-time-stt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions assets/images/real-time-stt/real-time-stt.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@startuml

participant "Your app server" as APP
participant "Real-Time STT" as RTT

group Start transcription
APP -> RTT: 1 Call `acquire` to acquire a resource
RTT -> APP: 2 Return the resource ID
APP -> RTT: 3 Call `start` to start transcription
RTT <- APP: 4 Get the task ID
end

group During transcription (Optional multiple calls)
APP -> RTT: Call `query` to query task status
RTT -> APP: Return current status
APP -> RTT: Call `update` to update configuration
end

group Stop transcription
APP -> RTT: Call `stop` to stop transcription
RTT -> APP: Return task status
end

@enduml
1 change: 1 addition & 0 deletions assets/images/real-time-stt/real-time-stt.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions real-time-stt/develop/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"position": 3,
"label": "Develop",
"collapsible": true,
"link": null
}
13 changes: 13 additions & 0 deletions real-time-stt/develop/api-callback-service.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: 'API callback service'
sidebar_position: 7
type: docs
description: >
Receive notifications about Real-Time STT events
---

import CallbackService from '@docs/shared/real-time-stt/develop/callback-service.mdx';

export const toc = [{}];

<CallbackService PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />
13 changes: 13 additions & 0 deletions real-time-stt/develop/enable-service.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: 'Best practice in enabling Real-Time STT on the client side'
sidebar_position: 6
type: docs
description: >
Enable the Real-Time STT service
---

import EnableService from '@docs/shared/real-time-stt/develop/enable-service.mdx';

export const toc = [{}];

<EnableService PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />
14 changes: 14 additions & 0 deletions real-time-stt/develop/encrypt-captions.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: 'Encrypt captions'
sidebar_position: 1
type: docs
description: >
Encrypt the captions transcribed with RTT
---

import EncryptCaptions from '@docs/shared/real-time-stt/develop/encrypt-captions.mdx';

export const toc = [{}];

<EncryptCaptions PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />

14 changes: 14 additions & 0 deletions real-time-stt/develop/record-captions.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: 'Record captions'
sidebar_position: 2
type: docs
description: >
Record the captions transcribed with RTT in real time
---

import RecordCaptions from '@docs/shared/real-time-stt/develop/record-captions.mdx';

export const toc = [{}];

<RecordCaptions PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />

14 changes: 14 additions & 0 deletions real-time-stt/develop/supported-languages.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: 'Supported languages'
sidebar_position: 5
type: docs
description: >
The list of languages supported for real-time speech-to-text
---

import SupportedLanguages from '@docs/shared/real-time-stt/develop/supported-languages.mdx';

export const toc = [{}];

<SupportedLanguages PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />

14 changes: 14 additions & 0 deletions real-time-stt/develop/transcribe-individual-host.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: 'Transcribe specified hosts'
sidebar_position: 3
type: docs
description: >
Transcribe the speech of specific channel hosts only
---

import TranscribeHost from '@docs/shared/real-time-stt/develop/transcribe-individual-host.mdx';

export const toc = [{}];

<TranscribeHost PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />

13 changes: 13 additions & 0 deletions real-time-stt/develop/update-service.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: 'Update service'
sidebar_position: 8
type: docs
description: >
Update the Real-Time STT service
---

import UpdateService from '@docs/shared/real-time-stt/develop/update-service.mdx';

export const toc = [{}];

<UpdateService PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />
6 changes: 6 additions & 0 deletions real-time-stt/get-started/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"position": 2,
"label": "Get started",
"collapsible": true,
"link": null
}
15 changes: 15 additions & 0 deletions real-time-stt/get-started/quickstart.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: 'REST quickstart'
sidebar_position: 1
type: docs
platform_selector: false
description: >
Transcribe audio content of a host's media stream into written words in real time.
---

import RealTimeSTT from '@docs/shared/real-time-stt/get-started/quickstart.mdx';

export const toc = [{}];

<RealTimeSTT PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />

6 changes: 6 additions & 0 deletions real-time-stt/overview/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"position": 1,
"label": "Overview",
"collapsible": true,
"link": null
}
15 changes: 15 additions & 0 deletions real-time-stt/overview/core-concepts.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: 'Core concepts'
sidebar_position: 2
type: docs
platform_selector: false
description: >
Ideas that are central to developing with Agora.
---

import CoreConcepts from '@docs/shared/common/core-concepts/real-time-stt.mdx';

export const toc = [{}];

<CoreConcepts PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />

61 changes: 61 additions & 0 deletions real-time-stt/overview/pricing.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: 'Pricing'
sidebar_position: 3
type: docs
platform_selector: false
description: >
Introduces the billing policy for Real-Time STT.
---

export const toc = [{}];

This page introduces the billing policy for the <Vpd k="NAME"/> add-on provided by Agora.

Your billing details may differ if you have signed a contract with Agora.

## Overview

Agora calculates the billing of all projects under your Agora account on a monthly basis. Billing begins once you
enable <Vpd k="NAME"/>.

## Transcription fee

When <Vpd k="NAME"/> is enabled for a channel, it transcribes the audio of its active hosts. When <Vpd k="NAME"/> is enabled for specific hosts, it only transcribes the audio of the specified hosts and ignores the others. The <Vpd k="NAME"/> service employs algorithms that remove the periods of silence and improve WER (Word Error Rate) of transcription. The processed audio is transcribed by the <Vpd k="NAME"/> engine and referred to as transcription duration. Agora charges for the transcription duration of all or specified hosts in the channel.

The unit price is as follows:

|Billing item |Usage, minutes per month |Pricing, US$/1,000 minutes|
|-------------|--------------------|--------------------------|
|Transcription duration|Above 0 | 16.99 |

Examples:
- Let's say there is a channel existing for 10 minutes. There are 3 active hosts - A, B, and C - all in the unmuted state.
- #1: If <Vpd k="NAME"/> is enabled for this channel, the algorithm will remove 8 minutes of silent audio for host A, 7 minutes for host B, and 7 minutes for host C. Therefore, the transcription duration is (10 - 8) + (10 -7) + (10 - 7) = 2 + 3 + 3 = 8 minutes.
- #2: If <Vpd k="NAME"/> is enabled for host A, the algorithm will remove 8 minutes of silent audio for host A. The transcription duration is 10 - 8 = 2 minutes.

Notes:
- WER is known as the accuracy of an STT engine - the smaller, the better.
- Enabling <Vpd k="NAME"/> for a channel or host that are quiet for a long time is not recommended. In this case, audio is processed and removed, and the STT engine runs in the standby mode. Agora will charge for this standby duration at $0.99/1,000 minutes. In example #1, the standby duration is calculated the following way: Enable duration - transcription duration = 10 - 8 = 2 minutes. In example #2, the standby duration is calculated the following way: Enable duration - transcription duration = 10 - 2 = 8 minutes.

## Language identification fee

<Vpd k="NAME"/> supports dynamic language detection when two or more languages are enabled for a channel or specific hosts. The LID (language identification) duration is the same as the transcription duration.

|Billing item|Usage, minutes per month |Pricing, US$/1,000 minutes|
|--------------------|--------------------|--------------------------|
|Language identification duration|Above 0 | 5.00 |

Examples:
- Let's say there is a channel existing for 10 minutes. There are 3 active hosts - A, B, and C - all in the unmuted state.
- #3: If Spanish and Chinese LID is enabled for this channel, the algorithm will remove 8 minutes of silent audio for host A, 7 minutes for host B and 7 minutes for host C. Therefore, the transcription duration is 2 + 3 + 3 = 8 minutes. the LID duration is 8 minutes, too, being the sum of 2 minutes for host A, 3 minutes for host B, and 3 minutes for host C.
- If Spanish and Chinese LID is enabled for host A, then the transcription duration and LID duration are both 2 minutes.

Notes:
- The <Vpd k="NAME"/> transcription duration does not change if you enable more than 1 language.
- If only 1 language is set for a channel or a specified host, the language detection will not start.

## Free-of-charge duration

<Vpd k="NAME"/> provides 300 minutes of free-of-charge duration for integration and testing purposes.

Contact [email protected] or your AE to get a discount.
53 changes: 53 additions & 0 deletions real-time-stt/overview/product-overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: 'Product overview'
sidebar_position: 1
platform_selector: false
description: >
Create a better user experience with the most accurate live transcription and subtitling.
---


<ProductOverview
title="Real-Time Speech-To-Text"
img="/images/real-time-stt/real-time-stt.png"
apiQuickStartLink="/real-time-stt/get-started"
apiReferenceLink="/api-reference"
samplesLink="https://github.com/AgoraIO/agora-rtt-server"
productFeatures={[
{
title: "Live transcription for RTC",
content: "Integrated with Agora’s voice and video service, live transcription and captions improve accessibility for your audience. Perfect for meetings, live streaming, lectures, interviews, live shopping, and more.",
link: ""
},
{
title: "Cloud-based STT",
content: "Cloud-based service converts voice to text based on the active or specific hosts, then distributes the text to all participants in the channel for further processing. Does not depend on the performance of the client device and network.",
link: ""
},
{
title: "Speaker labeling",
content: "Label each transcribed text with the speaker's UID. Separate transcription of each host ensures accuracy even when multiple hosts are talking simultaneously.",
link: ""
},
{
title: "Caption recording",
content: "Upload the transcriptions as .vtt files to cloud storage, then play back audio or video recordings with closed captions (CC). The timestamp in the .vtt file allows to start playback from the point when the text was generated. ",
link: ""
},
{
title: "Multi-language support",
content: "Real-time transcription supports all major languages and dialects, and each channel can support audio to text transcription for up to two languages simultaneously.",
link: ""
},
{
title: "Enterprise-grade security and compliance",
content: "Agora is ISO and SOC 2 certified and meets compliance standards for regional privacy laws and industry regulations, including GDPR, CCPA, and HIPAA. Live captions and transcription can be encrypted the same way as the RTC audio or video. ",
link: ""
},
]}

>

Agora Real-Time Speech-To-Text (STT) enables you to transcribe audio of each host to provide live closed captions (CC) and transcription for improved accessibility. Real-Time STT also removes silent audio to improve transcription performance and reduce cost. The output text can be processed for LLM (for example, GPT). Real-Time STT is the first step in letting Real-Time Engagement enter the AI area.

</ProductOverview>
6 changes: 6 additions & 0 deletions real-time-stt/reference/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"position": 4,
"label": "Reference",
"collapsible": true,
"link": null
}
13 changes: 13 additions & 0 deletions real-time-stt/reference/common-errors.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: 'Common errors'
sidebar_position: 9
type: docs
description: >
Common errors
---

import CommonErrors from '@docs/shared/real-time-stt/reference/common-errors.mdx';

export const toc = [{}];

<CommonErrors PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />
14 changes: 14 additions & 0 deletions real-time-stt/reference/firewall.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: 'Firewall requirements'
sidebar_position: 4
type: docs
platform_selector: false
description: >
use Agora products in environments with restricted network access
---

import Firewall from '@docs/shared/common/_firewall.mdx';

export const toc = [{}];

<Firewall PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />
14 changes: 14 additions & 0 deletions real-time-stt/reference/glossary.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: 'Glossary'
sidebar_position: 5
type: docs
platform_selector: false
description: >
A list of terms used in Agora documentation.
---

import Glossary from '@docs/shared/common/_glossary.mdx';

export const toc = [{}];

<Glossary PRODUCT="Real-Time STT" company="Agora" PATH="real-time-stt" client="app" />
14 changes: 14 additions & 0 deletions real-time-stt/reference/manage-agora-account.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: 'Agora account management'
sidebar_position: 2
type: docs
platform_selector: false
description: >
Create, manage and update your Agora account.
---

import ManageAccount from '@docs/shared/common/_manage-agora-account.mdx';

export const toc = [{}];

<ManageAccount PRODUCT="Real-Time STT" company="Agora" client="app" PATH="real-time-stt" />
Loading

0 comments on commit afb4450

Please sign in to comment.