Implemente uma sala de conferência multilíngue sem servidor

Apresentação

Este padrão de desenvolvedor propõe um método para criar um canal de comunicações para permitir que os clientes que falam diferentes idiomas se comuniquem uns com os outros sem problemas. Isso pode ser útil principalmente em salas de reunião e em conferências telefônicas nas quais os participantes estão em diferentes países, como legendas traduzidas ou em que um áudio pode ser gerado e entregue em tempo real.

Descrição

Em algum momento, você já desejou que existisse uma maneira de os parceiros de equipes de jogos on-line que falam idiomas diferentes se comunicarem de forma efetiva? E as salas de bate-papo com vários clientes, como um grupo de bate-papo Slack/Sametime/Zoom? E as transmissões em tempo real no YouTube ou Twitch? Ou, talvez, aulas/webinars on-line? Este padrão de desenvolvedor propõe exatamente isso: criar um canal de comunicações para permitir que clientes que falam idiomas diferentes se comuniquem uns com os outros sem problemas.

Este padrão alavanca o protocolo de sistema de mensagens MQTT, que permite que cada cliente publique e “assine” um ou mais canais. A composição do canal determina o idioma solicitado e o tipo de carga útil de cada cliente (fromClient/french/audio, por exemplo).

O canal para o qual cada mensagem é enviada determina a sequência de funções em nuvem que será chamada – por exemplo, o envio de uma mensagem para fromClient/english/audio executará a carga útil do áudio por meio do serviço Watson® Speech to Text, encaminhará o resultado para o serviço tradutor e distribuirá o resultado traduzido para todos os clientes ouvindo o áudio.

Após concluir este padrão, você entenderá melhor como:

  • Implementar ações/acionadores do IBM Cloud Functions
  • Interagir com o Watson IoT Platform
  • Configurar um aplicativo Cloud Foundry

Fluxo

Fluxograma das etapas para criação do app

  1. Mensagem recebida de um cliente, que pode ser um navegador da web, CLI, ação do OpenWhisk, texto SMS, etc.
  2. Se a carga útil da mensagem contiver um arquivo de áudio, ele será transcrito para texto.
  3. O texto transcrito é traduzido para outros idiomas suportados.
  4. Se a mensagem for enviada por SMS, o número do telefone do emissor será incluído em um armazenamento de chave-valor etcd. O etcd é usado aqui para manter uma lista de números de telefone de assinantes, bem como seus respectivos idiomas. Um valor TTL ajustável é usado aqui para remover números do armazenamento, caso o assinante não participe da conversa por 300 segundos.
  5. Mensagens/fluxos de áudio traduzidos são publicados em vários canais no broker MQTT, que distribui as mensagens entre os clientes assinantes.

Instruções

Pronto para aplicar este padrão de código? Detalhes completos sobre como começar a executar e usar este aplicativo estão no arquivo README.

Aviso

O conteúdo aqui presente foi traduzido da página IBM Developer US. Caso haja qualquer divergência de texto e/ou versões, consulte o conteúdo original.