Serviços de tradução de texto para voz e voz para texto do IBM Cloud – Walter Coan
HomeIBMServiços de tradução de texto para voz e voz para texto do IBM Cloud
O objetivo deste tutorial é apresentar o processo de utilização de serviços cognitivos de tradução de textos para voz e de reconhecimento de voz para texto. O IBM Cloud possui dois serviços que tem essa capacidade: Speech to Text e o Text to Speech.
Criando um serviço de reconhecimento de fala
O primeiro passo é criar o serviço no IBM Cloud chamado Speech to Text. Para isso acesse console.bluemix.com e crie uma conta gratuita. Uma vez autenticado, clique no menu catálogo, e na caixa de busca digite na caixa de busca Speech -> então selecione a opção do serviço Speech to Text.
Na próxima tela, informe o nome do serviço e clique no botão Create.
Na próxima tela, será apresentado o endereço do serviço e principalmente as informações de login e senha para conexão com o serviço.
O próximo passo é acessar a instância do Node-RED e instalar alguns pacotes de novos nós que vamos precisar para integrar com esses serviços cognitivos do IBM Cloud. Clique no menu de hambúrguer, e selecione a opção Manage Palette.
Na próxima tela, clique na aba Install e no campo de busca digite node-red-contrib-browser-utils, ao encontrar o pacote clique no botão install e confirme no botão Close.
Adicione os três seguintes nós no flow: Microphone, Speech to Text e o nó Debugger.
O nó de microfone não precisa ser configurado, já o nó do speech to text precisa ser configurado para inserção do usuário e da senha do serviço speech to text que foi apresentado no passo anterior. Clique duas vezes sobre o nó speech to text, informe o usuário e senha que esta na tela do serviço no IBM Cloud, selecione o idioma e a qualidade do áudio.
Antes de concluir é importante desmarcar a opção Speaker Labels, pois vamos ter apenas um único locutor nesse processo.
Confirme as alterações no botão Done.
Conforme a documentação do nó speech to text, seu resultado da tradução do áudio para texto será enviada para o próximo nó conectado a ele através da propriedade msg.transcription. Por esse motivo, devemos configurar nosso nó debugger, clicando duas vezes sobre ele, e alterando a propriedade que será mostrada.
Para concluir, faça as conexões entre nos nós conforme a imagem abaixo e clique no botão Deploy. Em seguida abra a aba do debugger clicando no ícone indicado e para iniciar a gravação do áudio clique uma vez no botão ao lado do nó microfone, para concluir a gravação basta clicar mais uma vez. O texto traduzido será apresentado na janela debugger ao lado.
Criando um serviço de conversão de texto para fala
O próximo passo será criar um serviço que receba um texto e retorne o áudio do texto falado. Para isso devemos acessar novamente o IBM Cloud, clicar novamente na opção de catálogo, e digitar na busca a palavra speech, selecione a opção text o speech.
Na próxima tela de criação do serviço informe um nome único e selecione a opção criar.
Quando o serviço for criado, observe que novamente na tela principal as credenciais de login e senha serão apresentados. Mantenha esta janela aberta pois no próximo passo as credenciais deverão ser copiadas para o nó do Node-RED.
Podemos retornar para o Node-RED para criar o fluxo desta aplicação, vamos precisar dos seguintes nós: http input, dois nós function o nó textTospeech e um nó http output.
O primeiro nó que precisa ser configurado é o http input para isso clique duas vezes sobre ele, no campo URL informe o valor /fala que deverá ser digitado junto a URL do serviço nodered para acessar ao tradutor. Confirme as alterações no botão Done.
O próximo nó a ser configurado é o primeiro function, como nosso objetivo é passar o texto a ser traduzido pela URL, vamos definir que esse serviço aguarda um parâmetro chamado texto que deve ser copiado para a propriedade payload do objeto, digite o código conforme a imagem a seguir.
Agora vamos configurar o nó text to speech, para isso clique duas vezes nele, informe as credenciais de usuário e senha que apareceram na tela do mesmo serviço no IBM Cloud. Selecione a língua e marque a opção place output on msg.payload. Conforme as alterações no botão Done.
A opção selecionada no nó anterior faz com que o Node-RED grave dentro da propriedade msg.payload o conteúdo do áudio convertido para o formato WAV em binário. Esse conteúdo será retornado para o navegador que servirá como tocador do conteúdo, mas é necessário avisar o navegador do que se trata o binário que ele esta recebendo. Por esse motivo vamos modificar o cabeçalho do http request para incluir o mimetype audio/x-wav com isso o navegador saberá como tratar esse conteúdo. Para isso vamos inserir a seguinte lógica no segundo nó função conforme imagem abaixo, e confirmar no botão Done.
Para concluir, faça as conexões dos nós conforme a figura abaixo e confirme no botão Deploy.
Para testar o novo serviço, abra uma nova aba do navegador, digite o mesmo endereço do seu serviço Node-RED mas no final coloque /fala?texto=ola univille Ao pressionar ENTER o navegador fará a requisição para o serviço que transformará o texto em áudio e retornará o áudio para execução pelo navegador.