Tradução de legendas em tempo real (beta privado)

Use a tradução de legendas ao vivo para traduzir legendas em tempo real para diferentes idiomas para os participantes de uma sessão do Vonage Video.

Beta privado

Observação: A tradução das legendas em tempo real é fornecida como um beta privado recurso. Entre em contato conosco para ativar a tradução de legendas em tempo real no seu projeto.

A versão beta privada está disponível para que clientes selecionados possam conhecer e avaliar o recurso, além de enviar comentários. Para incorporar esses comentários e adaptar o produto às necessidades dos clientes, pode ser necessário realizar alterações que causem incompatibilidade e afetem as APIs e o código dos clientes. Esteja ciente de que pode ser necessário modificar o código escrito durante a fase beta privada após o produto ser disponibilizado ao público em geral.

Esta página inclui as seguintes seções:

Visão geral

A tradução de legendas em tempo real amplia o Legendas em tempo real recurso que permite a tradução em tempo real das legendas. Com o Live Captions, o áudio é transcrito no idioma falado. Com o Live Captions Translation, essas legendas podem ser traduzidas automaticamente para um idioma diferente para os participantes.

Antes de usar a tradução das legendas em tempo real, certifique-se de estar familiarizado com o Legendas em tempo real recurso, incluindo como iniciar legendas usando a API REST e como inscrever-se para receber legendas nos SDKs do cliente.

A tradução pode ser ativada em dois níveis:

  1. Tradução no nível da sessão — Defina um idioma de tradução para todos os participantes ao ativar as legendas por meio da API do lado do servidor.
  2. Tradução no nível do assinante — Os assinantes individuais escolhem seu próprio idioma de tradução usando os SDKs do cliente, independentemente da configuração no nível da sessão.

Esses dois níveis podem ser usados em conjunto ou separadamente.

Tradução no nível da sessão

Ao chamar o Iniciar a API REST do Captions (POST /v2/project/<apiKey>/captions), você pode incluir um targetLanguageCode parâmetro no corpo da solicitação:

{
  "sessionId": "<session-id>",
  "token": "A valid OpenTok token with the role set to moderator",
  "languageCode": "en-US",
  "targetLanguageCode": "es-ES",
  "maxDuration": 1800,
  "partialCaptions": true
}
  • targetLanguageCode (String) — (Opcional) O código de idioma BCP-47 para o idioma de destino da tradução (consulte o lista de idiomas suportados). Quando essa opção estiver ativada, todos os participantes da sessão receberão legendas traduzidas no idioma especificado, em vez do idioma original da transcrição.

Comportamento:

  • Se targetLanguageCode é não definido (ou omitidas), as legendas funcionam normalmente — os participantes recebem as legendas no idioma original da fala, definido por languageCode.
  • Se targetLanguageCode está definido, todos os participantes da sessão recebem, por padrão, legendas traduzidas para o idioma especificado.
  • Um assinante que definir seu próprio idioma de tradução (consulte Tradução no nível do assinante) receberão legendas no idioma de sua escolha, substituindo a configuração no nível da sessão targetLanguageCode.

Idioma de entrada no nível da editora

Os apresentadores podem especificar o idioma em que estão falando por meio dos SDKs do cliente, permitindo que o serviço de legendagem interprete corretamente o áudio. Isso é útil em sessões multilíngues, nas quais diferentes apresentadores podem falar idiomas diferentes. O idioma de entrada no nível do apresentador pode ser alterado a qualquer momento durante uma sessão.

É possível configurar o idioma de entrada do emissor usando qualquer um dos SDKs de cliente da Video API da Vonage, incluindo Web (OpenTok.js), iOS, Android, Windows, e Linux. A seguir, apresentamos exemplos de referência para cada plataforma.

Como definir o idioma de entrada (Web)

Por padrão, o idioma de entrada das legendas não está definido (null), permitindo que o servidor utilize o languageCode definido ao iniciar as legendas. Para alterar o idioma de entrada de um editor específico, chame setCaptionsInputLanguage com um código de idioma BCP-47 válido. Aprovado null para voltar às configurações padrão.

// Example BCP-47 language code for captions input language
const captionsLanguageCode = 'fr-FR'

// Set the publisher's captions input language
try {
    await publisher.setCaptionsInputLanguage(captionsLanguageCode)
} catch (err) {
    console.error(`Failed to set captions input language: ${err.message}`)
}

// Pass null to revert to the default language
try {
    await publisher.setCaptionsInputLanguage(null)
} catch (err) {
    console.error(`Failed to revert captions input language: ${err.message}`)
}

Obter o idioma de entrada atual (Web)

Uso getCaptionsInputLanguage para verificar o idioma de entrada atualmente configurado no editor. Ela retorna o código de idioma BCP-47 selecionado, ou null se nenhum idioma de entrada tiver sido definido.

const captionsLanguage = publisher.getCaptionsInputLanguage()
if (captionsLanguage) {
    console.log(`Captions input language is set to: ${captionsLanguage}`)
} else {
    console.log('No input language set; using the session default.')
}

Como definir o idioma de entrada (Android)

Use o setCaptionsInputLanguage() método do objeto PublisherKit para definir o idioma de entrada. Passe null para voltar ao idioma padrão.

// Set the publisher's captions input language
publisher.setCaptionsInputLanguage("fr-FR");

// Revert to the default language
publisher.setCaptionsInputLanguage(null);

Como obter o idioma de entrada atual (Android)

Use o getCaptionsInputLanguage() método para verificar o idioma de entrada atualmente configurado pelo editor. Ele retorna o código de idioma BCP-47 selecionado, ou null se nenhum idioma de entrada tiver sido definido.

String captionsLanguage = publisher.getCaptionsInputLanguage();
if (captionsLanguage != null) {
    Log.d(TAG, "Captions input language is set to: " + captionsLanguage);
} else {
    Log.d(TAG, "No input language set; using the session default.");
}

Como definir o idioma de entrada (iOS)

Defina o captionsInputLanguage propriedade do objeto OTPublisherKit para o código de idioma BCP-47 desejado. Defina-a como nil para voltar ao idioma padrão.

// Set the publisher's captions input language
publisher.captionsInputLanguage = @"fr-FR";

// Revert to the default language
publisher.captionsInputLanguage = nil;

Como obter o idioma de entrada atual (iOS)

Leia o captionsInputLanguage propriedade para verificar o idioma de entrada atualmente configurado do editor. Ela retorna o código de idioma BCP-47 selecionado, ou nil se nenhum idioma de entrada tiver sido definido.

NSString *captionsLanguage = publisher.captionsInputLanguage;
if (captionsLanguage) {
    NSLog(@"Captions input language is set to: %@", captionsLanguage);
} else {
    NSLog(@"No input language set; using the session default.");
}

Como definir o idioma de entrada (Windows)

Defina o CaptionsInputLanguage propriedade do objeto Publisher para o código de idioma BCP-47 desejado. Defina-a como null para voltar ao idioma padrão.

// Set the publisher's captions input language
publisher.CaptionsInputLanguage = "fr-FR";

// Revert to the default language
publisher.CaptionsInputLanguage = null;

Como obter o idioma de entrada atual (Windows)

Leia o CaptionsInputLanguage propriedade para verificar o idioma de entrada atualmente configurado do editor. Ela retorna o código de idioma BCP-47 selecionado, ou null se nenhum idioma de entrada tiver sido definido.

string captionsLanguage = publisher.CaptionsInputLanguage;
if (captionsLanguage != null)
{
    Console.WriteLine($"Captions input language is set to: {captionsLanguage}");
}
else
{
    Console.WriteLine("No input language set; using the session default.");
}

Como definir o idioma de entrada (Linux)

Use o otc_publisher_set_captions_input_language função para definir o idioma de entrada do editor. Passe NULL para voltar ao idioma padrão.

// Set the publisher's captions input language
otc_publisher_set_captions_input_language(publisher, "fr-FR");

// Revert to the default language
otc_publisher_set_captions_input_language(publisher, NULL);

Como obter o idioma de entrada atual (Linux)

Uso otc_publisher_get_captions_input_language para verificar o idioma de entrada atualmente configurado no editor. Ela retorna o código de idioma BCP-47 selecionado, ou NULL se nenhum idioma de entrada tiver sido definido.

const char* captionsLanguage = otc_publisher_get_captions_input_language(publisher);
if (captionsLanguage != NULL) {
    printf("Captions input language is set to: %s\n", captionsLanguage);
} else {
    printf("No input language set; using the session default.\n");
}

Tradução no nível do assinante

Os assinantes podem escolher o idioma de tradução usando os SDKs do cliente e podem alterá-lo a qualquer momento durante uma sessão. Isso funciona independentemente do nível da sessão targetLanguageCode.

É possível configurar a tradução no nível do assinante usando qualquer um dos SDKs de cliente da Video API do Vonage, incluindo Web (OpenTok.js), iOS, Android, Windows, e Linux. A seguir, apresentamos exemplos de referência para cada plataforma.

Como definir o idioma de tradução (Web)

O idioma padrão das legendas é determinado pelo languageCode (ou targetLanguageCode) definido na API Start Captions. Para alterar o idioma de tradução para um assinante específico, chame setCaptionsTranslationLanguage com um código de idioma BCP-47 válido. Aprovado null para voltar ao idioma padrão.

// Example BCP-47 language code for captions translation
const captionsLanguageCode = 'es-ES'

// Set the subscriber's captions translation language
try {
    await subscriber.setCaptionsTranslationLanguage(captionsLanguageCode)
} catch (err) {
    console.error(`Failed to set captions translation language: ${err.message}`)
}

// Pass null to revert to the default language
try {
    await subscriber.setCaptionsTranslationLanguage(null)
} catch (err) {
    console.error(`Failed to revert captions translation language: ${err.message}`)
}

Obter o idioma atual da tradução (Web)

Uso getCaptionsTranslationLanguage para verificar o idioma de tradução selecionado atualmente pelo assinante. Ela retorna o código do idioma BCP-47 selecionado, ou null se nenhum idioma de tradução tiver sido definido.

const captionsLanguage = subscriber.getCaptionsTranslationLanguage()
if (captionsLanguage) {
    console.log(`Captions translation language is set to: ${captionsLanguage}`)
} else {
    console.log('No translation language set; using the session default.')
}

Como definir o idioma de tradução (Android)

Use o setCaptionsTranslationLanguage() método do objeto SubscriberKit para definir o idioma da tradução. Passe null para voltar ao idioma padrão.

// Set the subscriber's captions translation language
subscriber.setCaptionsTranslationLanguage("es-ES");

// Revert to the default language
subscriber.setCaptionsTranslationLanguage(null);

Obtendo o idioma atual da tradução (Android)

Use o getCaptionsTranslationLanguage() método para verificar o idioma de tradução atualmente selecionado pelo assinante. Ele retorna o código de idioma BCP-47 selecionado, ou null se nenhum idioma de tradução tiver sido definido.

String captionsLanguage = subscriber.getCaptionsTranslationLanguage();
if (captionsLanguage != null) {
    Log.d(TAG, "Captions translation language is set to: " + captionsLanguage);
} else {
    Log.d(TAG, "No translation language set; using the session default.");
}

Como definir o idioma de tradução (iOS)

Defina o captionsTranslationLanguage propriedade do objeto OTSubscriberKit para o código de idioma BCP-47 desejado. Defina-a como nil para voltar ao idioma padrão.

// Set the subscriber's captions translation language
subscriber.captionsTranslationLanguage = @"es-ES";

// Revert to the default language
subscriber.captionsTranslationLanguage = nil;

Obter o idioma atual da tradução (iOS)

Leia o captionsTranslationLanguage propriedade para verificar o idioma de tradução atualmente selecionado pelo assinante. Ela retorna o código do idioma BCP-47 selecionado, ou nil se nenhum idioma de tradução tiver sido definido.

NSString *captionsLanguage = subscriber.captionsTranslationLanguage;
if (captionsLanguage) {
    NSLog(@"Captions translation language is set to: %@", captionsLanguage);
} else {
    NSLog(@"No translation language set; using the session default.");
}

Como definir o idioma de tradução (Windows)

Defina o CaptionsTranslationLanguage propriedade do objeto Subscriber para o código de idioma BCP-47 desejado. Defina-a como null para voltar ao idioma padrão.

// Set the subscriber's captions translation language
subscriber.CaptionsTranslationLanguage = "es-ES";

// Revert to the default language
subscriber.CaptionsTranslationLanguage = null;

Como obter o idioma atual da tradução (Windows)

Leia o CaptionsTranslationLanguage propriedade para verificar o idioma de tradução atualmente selecionado pelo assinante. Ela retorna o código do idioma BCP-47 selecionado, ou null se nenhum idioma de tradução tiver sido definido.

string captionsLanguage = subscriber.CaptionsTranslationLanguage;
if (captionsLanguage != null)
{
    Console.WriteLine($"Captions translation language is set to: {captionsLanguage}");
}
else
{
    Console.WriteLine("No translation language set; using the session default.");
}

Idiomas suportados

A Tradução das Legendas em Tempo Real utiliza os mesmos códigos de idioma BCP-47 que as Legendas em Tempo Real. Consulte o lista de idiomas suportados para ver a lista completa de idiomas disponíveis.

Notas

  • A tradução de legendas em tempo real requer Legendas em tempo real para que fiquem ativas durante a sessão. Você deve ativar as legendas usando o Iniciar a API de legendas até que a tradução esteja disponível.

  • A definição de um idioma de tradução no nível do assinante substitui a configuração no nível da sessão targetLanguageCode apenas para esse assinante. Passando null restabelece o comportamento padrão do assinante (no nível da sessão targetLanguageCode se definido; caso contrário, o original languageCode).

  • Para consultar a documentação básica do recurso Live Captions — incluindo arquitetura, publicação de legendas, assinatura de legendas, webhooks de status e problemas conhecidos —, consulte o Guia de legendas em tempo real.