Skip to content
This repository has been archived by the owner on Aug 30, 2024. It is now read-only.

Real-Time Media Extensions (RTME) is an open-source framework designed to improve real-time media engagement. It integrates AWS Transcribe and Gladia.io for live transcription, and is built to be easily extensible, allowing for custom enhancements.

License

Notifications You must be signed in to change notification settings

DolbyIO/real-time-media-extensions

Repository files navigation

⚠️ This repository is no longer maintained ⚠️

Build Realtime Media Extensions Documentation License

Table of Contents

Dolby.io Real-time Media Extensions

The Dolby.io Real-time Media Extensions (RTME) provide a complete solution for automated, real-time media processing in the Dolby.io infrastructure. Each component provides its own API, but the project as a whole provides also the ready-to-use application, as well as the Docker image and Kubernetes pod definition.

The RTME application can be run directly on the Ubuntu host (build machine) or as a docker image. Running from the docker container exposes some REST API endpoints, while running directly allows for quick iteration times. Installation procedures are available in the documentation.

The docker application requires the following environment variables:

  • AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_SESSION_TOKEN if using AWS transcribe
  • Optional TRANSCRIPT_DESTINATION that can either be the URL for which the transcribed data will be submitted using the HTTP POST method or the PubNub channel.

Run the application as in the following example:

docker run -p 8080:8080 -e AWS_ACCESS_KEY_ID=... -e AWS_SECRET_ACCESS_KEY=... -e AWS_SESSION_TOKEN=... transcription

The Docker application does not automatically start the transcription. It exposes the following REST API endpoints on port 8080 for controlling its tasks:

  • /health
  • /ready
  • /terminate
  • /start
  • /stop

The /start endpoint can be used to start the transcription. The query parameters are:

Item Meaning
alias The Communications API conference alias RTME runtime should connect to. When a conference with a specific alias does not exist, using the alias results in creating the conference. Therefore, we recommend using alias only for local testing.
id The Communications API conference ID RTME runtime should connect to.
token The Communications APIs client access token required to connect to a conference. RTME does not support any form of token refresh, therefore, we recommend using a token with a sufficient expiration time to stay in a conference until the end.
username The user name representing the RTME runtime in the Communications APIs conference.
service The transcription service to use, either aws or gladia
gladiakey The Gladia.io API key.
sendmechanism The mechanism used to send data from outside the RTME application, either http or pubnub
publishkey The publish key for PubNub if it is used as send mechanism.
subscribekey The subscribe key for PubNub if it is used as send mechanism.

Use the /stop or /terminate endpoint to terminate the application or stop transcribing.

For more information, see the RTME documentation.

If you would like to build the sources from scratch and/or modify the components, see the Building and Modifying Components instructions.

If you would like to run the application natively on Ubuntu 20.04, refer to the instruction.

About

Real-Time Media Extensions (RTME) is an open-source framework designed to improve real-time media engagement. It integrates AWS Transcribe and Gladia.io for live transcription, and is built to be easily extensible, allowing for custom enhancements.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages