Text to speech para asterisk usando Google Translate

Este script AGI foi desenvolvido para que você possa dar a capacidade do seu Asterisk falar com o seu usuário/cliente.

Este script utiliza a plataforma do Google Translate para reinderizar (converter) um texto para audio, e posteriormente tocar este audio no Asterisk. Como este script utiliza a plataforma do Google Translate, você pode realizar este processo em diversas linguagens, para maiores informações verifique a documentação do Google.

Dependências

  • PHP5: PHP 5 para processamento dos scripts
  • cURL: Biblioteca de acesso web
  • Perc: Biblioteca para acesso web através do PHP
  • sox : Sound eXchange, aplicativo para conversão/processamento de audio
  • mpg123 : MPEG Audio Player and decoder, aplicativo para conversão de MP3
  • Acesso a internet para conectar a plataforma do Google e efetuar o download do audio

Instalando as dependências

apt-get install -y php-http php5-dev libcurl3 libpcre3-dev libcurl4-openssl-dev mpg123 sox
pecl install pecl_http-1.7.6

Edite o arquivo /etc/php5/cli/php.ini adicionando a linha abaixo

extension=http.so

Instalando o script AGI

Antes de instalar o script AGI verifique o diretório agi-bin do seu Asterisk, geralmente o padrão é /var/lib/asterisk/agi-bin/, essa informação pode ser encontrada em /etc/asterisk/asterisk.conf. Considerando que este é o diretório padrão execute os comandos abaixo:

wget http://www.helviojunior.com.br/wp-content/uploads/2015/08/googletts.tgz
tar -xzvf googletts.tgz -C /var/lib/asterisk/agi-bin/
chmod 777 /var/lib/asterisk/agi-bin/googletts.php

Utilização

agi(googletts.php,texto,[linguagem]): Este comando irá executar o script googletts.php que utilizar-a o Google Translate para converter texto para áudio e tocar esse áudio para o cliente. O Parâmetro linguagem é opcional, caso não definido o script utilizará a linguagem deste canal no Asterisk.

Exemplos de utilização no plano de discagem (dialplan) do Asterisk:

exten => 1234,1,Answer()
  ;;Toca a mensagem usando a linguagem padrão deste canal:
exten => 1234,n,agi(googletts.php,"Este é um exemplo simples.")
  ;;Toca a mensagem em Portugês:
exten => 1234,n,agi(googletts.php,"Este é um exemplo simples usando Google TTS em português.",pt-BR)
  ;;Toca a mensagem em inglês:
exten => 1234,n,agi(googletts.php,"This is a simple google text to speech test in english.",en)
Helvio Junior (OSCE, OSCP, CEHv9)

Helvio Junior (OSCE, OSCP, CEHv9)

Consultor em Cyber Security em Ernst & Young (EY)
OSCE, OSCP, CEHv9, Pesquisador de Falhas de Segurança e Vulnerabilidades. Profissional com mais de 20 anos de experiência na área de TI, atualmente focado na área de segurança da informação ofensiva (Red Team), bug hunting, cyber threat hunting, criação e engenharia reversa de Malware.
Carreira baseada em sólidos conhecimentos técnicos nas principais tecnologias de TI: Penetration Testing, Clould Computing, Ambiente de alta criticidade e alta disponibilidade, Windows Servers e seus serviços, Linux Servers e seus serviços, VoIP com Asterisk, Redes, Cisco, HP, ISO 27002, Hacker ético (CEHv9) e Engenharia reversa.
Helvio Junior (OSCE, OSCP, CEHv9)
6 respostas
  1. Felipe
    Felipe says:

    Ola Helvio, estava usando o GoogleTTS do ZAF porém em Outubro/2015 parou de funcionar adequadamente no asterisk. Tentei testar o seu também não roda mais com a nova política do Google. Tu tem alguma idéia se vai atualizar o seu TTS para que funcione?

    Responder
    • Felipe
      Felipe says:

      é exatamente esse limite que esta implicando na paralização, porém consultando uma linha apenas com menos de 250 caracteres (exemplo: Bom Dia) a segunda linha já não lê devido ao bloqueio.

      Verifiquei essa questão de usar a key.. mas até agora não obtive resposta do google sobre a forma de pagamento sobre o TTS e não sobre o tradutor…

      Responder
      • Helvio Junior
        Helvio Junior says:

        Felipe,

        A Plataforma do Google TTS é a mesma do Google Translator, ou seja, este script usa a plataforma do Google Translator.

        Geralmente os bloqueios do Google são diários/mensais, ou seja, não importa se a mensagem é curta ou longa, mas sim a soma de todas as mensagens que você da fez o TTS naquele período.

        Responder
  2. Eduardo
    Eduardo says:

    Também testei no asterisk instalado no debian 8 porém nao instala o pecl install pecl_http-1.7.6 da erro Makefile:203: recipe for target ‘http_api.lo’ failed
    make: *** [http_api.lo] Error 1
    ERROR: `make’ failed

    Ja meu google.agi ta funcionando porém seu script não

    Responder

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *