Rybená Logo

Controle de Tradução

A API Rybená oferece métodos completos para controlar a tradução de texto, incluindo alternância entre LIBRAS e voz, controle de reprodução e ajuste de velocidade.

Tradução de Texto

translate(text)

Traduz o texto especificado usando o modo de tradução atual (LIBRAS ou voz).

RybenaApi.getInstance().translate(text)

Parâmetros:

  • text (string): O texto a ser traduzido

Retorno: void

Exemplo:

RybenaApi.getInstance().translate("Olá, bem-vindo à Rybená!");

Modos de Tradução

switchToLibras()

Alterna para o modo de tradução em LIBRAS (Língua Brasileira de Sinais).

RybenaApi.getInstance().switchToLibras()

Retorno: void

Atenção: Apenas o idioma Português contém a funcionalidade de tradução em LIBRAS.

Exemplo:

RybenaApi.getInstance().switchToLibras();
RybenaApi.getInstance().translate("Este texto será traduzido em LIBRAS");

switchToVoz()

Alterna para o modo de tradução por voz (síntese de voz).

RybenaApi.getInstance().switchToVoz()

Retorno: void

Exemplo:

RybenaApi.getInstance().switchToVoz();
RybenaApi.getInstance().translate("Este texto será lido em voz alta");

Controle de Reprodução

pause()

Pausa a tradução atual. A tradução pode ser retomada de onde parou usando play().

RybenaApi.getInstance().pause()

Retorno: void

Exemplo:

RybenaApi.getInstance().pause();

play()

Retoma a tradução pausada. Se não houver tradução pausada, não faz nada.

RybenaApi.getInstance().play()

Retorno: void

Exemplo:

RybenaApi.getInstance().play();

stop()

Para a tradução atual e limpa o buffer de tradução. Diferente de pause(), stop() remove todo o conteúdo pendente de tradução.

RybenaApi.getInstance().stop()

Retorno: void

Atenção: A diferença entre pause() e stop() é:

  • pause(): Apenas pausa a Rybená, e quando executar play() ela traduzirá de onde pausou
  • stop(): Limpa o buffer de tradução da Rybená, e quando executar play() ela não reproduzirá nada

Exemplo:

RybenaApi.getInstance().stop();

Velocidade de Tradução

setSpeed(speed)

Define a velocidade da tradução.

RybenaApi.getInstance().setSpeed(speed)

Parâmetros:

  • speed (number): Velocidade da tradução (0.5 a 1.5)

Valores Aceitos:

ValorDescrição
0.5Muito lento
0.75Lento
1.0Normal (padrão)
1.25Rápido
1.5Muito rápido

Retorno: void

Exemplo:

// Velocidade normal
RybenaApi.getInstance().setSpeed(1.0);

// Velocidade rápida
RybenaApi.getInstance().setSpeed(1.5);

// Velocidade lenta
RybenaApi.getInstance().setSpeed(0.75);

Exemplos Completos

Exemplo 1: Tradução Básica

Este exemplo mostra como traduzir um texto simples:

RybenaApi.getInstance().handleLoaded(() => {
  // Mostra o player
  RybenaApi.getInstance().openPlayer();
  
  // Traduz um texto
  RybenaApi.getInstance().translate("Bem-vindo à Rybená!");
});

Exemplo 2: Alternância entre Modos

Este exemplo mostra como alternar entre LIBRAS e voz:

RybenaApi.getInstance().handleLoaded(() => {
  RybenaApi.getInstance().openPlayer();
  
  // Traduz em LIBRAS
  RybenaApi.getInstance().switchToLibras();
  RybenaApi.getInstance().translate("Este texto está em LIBRAS");
  
  // Aguarda 3 segundos
  setTimeout(() => {
    // Traduz em voz
    RybenaApi.getInstance().switchToVoz();
    RybenaApi.getInstance().translate("Este texto está em voz");
  }, 3000);
});

Exemplo 3: Controle de Reprodução

Este exemplo mostra como controlar a reprodução da tradução:

RybenaApi.getInstance().handleLoaded(() => {
  RybenaApi.getInstance().openPlayer();
  
  // Traduz um texto longo
  RybenaApi.getInstance().translate("Este é um texto longo que pode ser pausado e retomado durante a tradução.");
  
  // Pausa após 2 segundos
  setTimeout(() => {
    RybenaApi.getInstance().pause();
    console.log("Tradução pausada");
    
    // Retoma após 2 segundos
    setTimeout(() => {
      RybenaApi.getInstance().play();
      console.log("Tradução retomada");
    }, 2000);
  }, 2000);
});

Exemplo 4: Ajuste de Velocidade

Este exemplo mostra como ajustar a velocidade da tradução:

RybenaApi.getInstance().handleLoaded(() => {
  RybenaApi.getInstance().openPlayer();
  
  // Traduz em velocidade lenta
  RybenaApi.getInstance().setSpeed(0.75);
  RybenaApi.getInstance().translate("Esta tradução está em velocidade lenta");
  
  // Aguarda a tradução terminar
  RybenaApi.getInstance().handleTranslate(() => {
    // Traduz em velocidade rápida
    RybenaApi.getInstance().setSpeed(1.5);
    RybenaApi.getInstance().translate("Esta tradução está em velocidade rápida");
  });
});

Exemplo 5: Player de Tradução

Este exemplo cria um player de tradução completo com controles:

RybenaApi.getInstance().handleLoaded(() => {
  RybenaApi.getInstance().openPlayer();
  
  // Configura botões
  document.getElementById('translateBtn').addEventListener('click', () => {
    const text = document.getElementById('textInput').value;
    if (text) {
      RybenaApi.getInstance().translate(text);
    }
  });
  
  document.getElementById('pauseBtn').addEventListener('click', () => {
    RybenaApi.getInstance().pause();
  });
  
  document.getElementById('playBtn').addEventListener('click', () => {
    RybenaApi.getInstance().play();
  });
  
  document.getElementById('stopBtn').addEventListener('click', () => {
    RybenaApi.getInstance().stop();
  });
  
  document.getElementById('librasBtn').addEventListener('click', () => {
    RybenaApi.getInstance().switchToLibras();
  });
  
  document.getElementById('vozBtn').addEventListener('click', () => {
    RybenaApi.getInstance().switchToVoz();
  });
  
  // Controle de velocidade
  document.getElementById('speedSlow').addEventListener('click', () => {
    RybenaApi.getInstance().setSpeed(0.75);
  });
  
  document.getElementById('speedNormal').addEventListener('click', () => {
    RybenaApi.getInstance().setSpeed(1.0);
  });
  
  document.getElementById('speedFast').addEventListener('click', () => {
    RybenaApi.getInstance().setSpeed(1.5);
  });
});

Exemplo 6: Tradução em Sequência

Este exemplo mostra como traduzir múltiplos textos em sequência:

const texts = [
  "Primeira frase",
  "Segunda frase",
  "Terceira frase"
];

let currentIndex = 0;

function translateNext() {
  if (currentIndex < texts.length) {
    RybenaApi.getInstance().translate(texts[currentIndex]);
    currentIndex++;
  }
}

RybenaApi.getInstance().handleLoaded(() => {
  RybenaApi.getInstance().openPlayer();
  
  // Traduz o próximo texto quando o anterior terminar
  RybenaApi.getInstance().handleTranslate(() => {
    translateNext();
  });
  
  // Começa a tradução
  translateNext();
});

Boas Práticas

Dica: Use handleTranslate() para executar ações após a tradução ser concluída, como traduzir o próximo texto em uma sequência.

Atenção: Lembre-se de que apenas o idioma Português suporta tradução em LIBRAS. Para outros idiomas, use sempre switchToVoz().

Sugestão: Para textos longos, considere dividi-los em partes menores e traduzir em sequência para melhor controle da experiência do usuário.

Resumo dos Métodos

MétodoDescriçãoParâmetros
translate(text)Traduz um textotext (string)
switchToLibras()Alterna para modo LIBRASNenhum
switchToVoz()Alterna para modo vozNenhum
pause()Pausa a traduçãoNenhum
play()Retoma a traduçãoNenhum
stop()Para e limpa a traduçãoNenhum
setSpeed(speed)Define velocidadespeed (number: 0.5-1.5)

Conteúdo Relacionado

Nesta página