API
The Gcore Customer Portal is being updated. Screenshots may not show the current version.
Video Streaming
Video Streaming
Chosen image
Home/Video Streaming/AI Video Services/AI subtitles

Generate and translate captions

Gcore AI automated speech recognition (ASR) functionality allows you to automatically generate video captions (also referred to as subtitles) using AI models. This serves two use cases:

  • Transcription: Generate video captions from the original audio. Our AI models transcribe the speech of one or multiple speakers, even if they use different languages.
  • Translation: Translate captions into more than 100 languages to make your video accessible to multilingual audiences.

How it works

We use Whisper ASR from OpenAI, along with a range of other specialized AI models. These AI ASR models operate on the Gcore infrastructure, so no files are transferred to external services. After processing, all original files are also deleted from the AI system’s local storage.

Key benefits

  • Ease of use. You can generate ready-to-use subtitles in the Customer Portal or with a few API requests.
  • Supported languages. AI can recognize and transcribe audio in over 100 languages worldwide. If your desired language isn't listed, please contact Gcore support team, and we'll consider adding it in the future.
  • Multi-platform support. Generate video captions for any MP4 video that’s uploaded to Gcore Video Hosting or stored externally, for instance, on AWS.
  • Multi-language support. We support the recognition of multiple spoken languages in a single video (the “code-switching” feature). This accounts for video participants switching between several languages in their speech.

Generate and translate AI captions for your video content

You can transcribe and translate subtitles in two ways: via API or in the Customer Portal. For step-by-step instructions, check out the relevant guide:

Was this article helpful?

Not a Gcore user yet?

Explore the Streaming Platform by Gcore

Go to the product page
// // Initialize a variable to undefined initially. // var growthBook = undefined; // (function() { // try { // var script = document.createElement('script'); // script.src = "https://cdn.jsdelivr.net/npm/@growthbook/growthbook/dist/bundles/auto.min.js"; // script.setAttribute("data-api-host", "https://cdn.growthbook.io"); // script.setAttribute("data-client-key", "sdk-truekA5wvhMYaqsu"); // document.head.appendChild(script); // script.onload = function() { // console.log("GrowthBook script loaded successfully."); // growthBook = window.GrowthBook; // Assuming GrowthBook attaches itself to window // }; // script.onerror = function() { // console.error("Failed to load the GrowthBook script."); // growthBook = undefined; // Explicitly set to undefined on error // }; // } catch (error) { // console.error("An error occurred while setting up the GrowthBook script:", error); // growthBook = undefined; // } // })(); // // Optional: Push to dataLayer if needed // window.dataLayer = window.dataLayer || []; // window.dataLayer.push({ // 'event': 'scriptLoadStatus', // 'growthBookStatus': growthBook ? "Loaded" : "Failed" // });