Inicial > DSP, Programação, Telecom > Google Speech + Python + Asterisk

Google Speech + Python + Asterisk

Olá Povo que acompanha o blog 🙂

Ainda falando sobre reconhecimento da fala utilizando o google, enviei uma mensagem na lista AsteriskBrasil onde expressava minhas idéias de como utilizar o serviço de reconhecimento de fala do google em tempo real com o Asterisk,  já se passou quase uma semana sem se quer um suspiro de interesse, então resolvi seguir sozinho !

A idéia é utilizar EAGI para controle do canal de entrada de áudio em conjunto com o File Descriptor, o Asterisk entrega o áudio em formato RAW diretamente no File Descriptor 3, então podemos utilizar esta informação da maneira que acharmos conveniente, para este caso a manipulação se torna muito prática, o que me desprende totalmente das APP’s prontas para gravações inseridas no Asterisk Ex. Record, nada melhor do que ser livre para voar, é claro várias análises se tornam possíveis com isso e o leque de aplicações possíveis se tornam infinitas.

Você certamente já pensou em ter um PABX com funcionalidade para reconhecimento da fala então certamente irá precisar partir para soluções cooporativas e caras certo???

A Partir de hoje não !

Tudo que irá precisar é ter internet para acessar o google o Script possue algumas dependencias:

https://github.com/ederwander/Asterisk-Google-Speech-Recognition/blob/master/README

Estou usando novamente o módulo audiolab para efetuar o encode do áudio em FLAC, caso exista alguma dificuldade para a instalação deste módulo poderei pensar em adaptar o código para uso externo do sox ou flac.

Como ele funciona?

  • Atende uma ligação
  • O usuário tem no máximo 10 segundos para efetuar a fala
  • Caso nao encontre atividade de voz encerra com timeout
  • Estratégia para atividade de voz verdadeira para os seguintes valores  RMS > 15 e Pitch > 75
  • Se atividade for encontrada o usuário poderá falar por no máximo 10 segundos
  • O script verifica blocos em tempo real com amostras de 1 em 1 segundo e verifica se a fala cessou
  • Caso sim o script interrompe a gravação automáticamente e envia o que foi gravado para o google
  • Caso não o script continua o seu curso até seu máximo de 10 segundos
  • Apos encontrada a resposta da fala no google o script seta a variável “GoogleUtterance”

 

Telas:

 

 

Source em:

https://github.com/ederwander/Asterisk-Google-Speech-Recognition

  1. janeiro 17, 2012 às 10:05 am

    Parabéns Amigo! Vou testar.

  2. Eduardo Assis
    janeiro 17, 2012 às 10:30 am

    Parabens pela iniciativa.

    Vi seu post na lista mas como não programo mais, então não respondi.

    Mas posso fazer os testes.

  3. Mauro Mequelussi
    janeiro 17, 2012 às 1:31 pm

    Cara parabéns pela iniciativa!!!

  4. monica
    janeiro 17, 2012 às 1:55 pm

    ola, eu uso centos, vc teria como passar um tutorial da instalaçao, pois nao conheço nada de Python

  5. astdev
    janeiro 17, 2012 às 6:14 pm

    Saudações caro Eder!
    Estou quebrando a cabeça pra fazer rodar no Centos 6.
    Postei na lista como fiz pra testar e o erro que resultou.
    pahh.py na pasta agi-bim com permissão de executar.
    Testei com chamadas externas para o meu numero principal e não dá nem tempo de falar algo pois a ligação cai direto logo depois de executar o script.
    Agarrei nas dependencias…

  6. judson
    janeiro 17, 2012 às 6:14 pm

    Saudações caro Eder!
    Estou quebrando a cabeça pra fazer rodar no Centos 6.
    Postei na lista como fiz pra testar e o erro que resultou.
    pahh.py na pasta agi-bim com permissão de executar.
    Testei com chamadas externas para o meu numero principal e não dá nem tempo de falar algo pois a ligação cai direto logo depois de executar o script.
    Agarrei nas dependencias…

  7. Eduardo Assis
    janeiro 18, 2012 às 9:19 am

    Bem como usuário de Slack tb passo pelos mesmos problemas.

    Teremos que criar um HOW-TO para todos conseguirmos.

    Eder, como vc ja consegue pegar o audio e converter em Texto, vc poderia fazer tb o contrario, pegando o texto e passando para o Google converter em audio.

    Tendo o TTS e o ASR.

    Abraços.

  8. Eduardo Assis
    janeiro 18, 2012 às 12:54 pm

    Eder, pode me dar uma ajuda ?

    Executei e não funcionou.

    ; Teste de reconhecimento de Voz
    ;
    exten => 11111111,1,Answer()
    exten => 11111111,n,AGI(pahh.py)
    exten => 11111111,n,GotoIf($[${EXISTS(${GoogleUtterance})}]?hello:bye)
    exten => 11111111,n(hello),NoOP(You Said = ${GoogleUtterance})
    exten => 11111111,n(bye),Hangup()

    Answer(“SIP/300-00000290”, “”) in new stack
    AGI(“SIP/300-00000290”, “pahh.py”) in new stack
    Launched AGI Script /var/lib/asterisk/agi-bin/pahh.py
    AGI Script pahh.py completed, returning 0
    GotoIf(“SIP/300-00000290”, “0?hello:bye”) in new stack
    Hangup(“SIP/300-00000290”, “”) in new stack

    Abraços.

  9. Eduardo Assis
    janeiro 18, 2012 às 12:58 pm

    Baixei a pasta no root e fiz a instalação com:

    easy_install scikits.audiolab

    Tentei executar na mão:

    root@sistema:~# /var/lib/asterisk/agi-bin/pahh.py

    Traceback (most recent call last):
    File “/var/lib/asterisk/agi-bin/pahh.py”, line 12, in
    import scikits.audiolab as audiolab
    ImportError: No module named scikits.audiolab

    Abraços.

    • ederwander
      janeiro 18, 2012 às 3:36 pm

      Olá pessoal me desculpem pela demora muitas reuniões no inicio de ano por aqui, bom vamos lahh tentar ajudar o pessoal, acabei de fazer um pequeno update no código algumas versões de interpretadores python estavam retornando erro em uma declaração de variável, a alteração deve sanar este tipo de problema!

      Monica vamos precisar da ajuda de todos para a instalação bem sucedida no CentOS, fiz o script encima da distribuição Debian tenho ele instalado e funcionando em dois Servidores Asterisk.

      root@NewSip:/var/lib/asterisk/agi-bin# cat /etc/issue
      Debian GNU/Linux 6.0 \n \l

      SipFly:/var/lib/asterisk/agi-bin# cat /etc/issue
      Debian GNU/Linux 4.0 \n \l

      Como pode ver um Debian 6.0 rodando Asterisk 1.8.6.0 e o outro Debian 4.0 rodando Asterisk 1.4.21.2

      Acredito que as dependências não sejam complicadas para serem instaladas o YUM possue um vasto repositório.

      Eduardo o seu problema está na falta do módulo Audiolab o erro indica isso, a instalação é feita da seguinte maneira:

      #wget http://pypi.python.org/packages/source/s/scikits.audiolab/scikits.audiolab-0.11.0.tar.gz
      #tar -zxvf scikits.audiolab-0.11.0.tar.gz
      #cd scikits.audiolab-0.11.0/
      #python setup.py install

      Se tudo correr bem nenhum erro será mostrado no display 🙂

      Para tentar ajudar o pessoal segue as versões de cada dependência que tenho instalado em meu Debian:

      #####python2.6

      dpkg -l |grep python2.6
      ii libpython2.6 2.6.6-8+b1 Shared Python runtime library (version 2.6)
      ii python2.6 2.6.6-8+b1 An interactive high-level object-oriented language (version 2.6)
      ii python2.6-dev 2.6.6-8+b1 Header files and a static library for Python (v2.6)
      ii python2.6-minimal 2.6.6-8+b1 A minimal subset of the Python language (version 2.6)

      ####python-matplotlib

      dpkg -l |grep matplot
      ii python-matplotlib 0.99.3-1 Python based plotting system in a style similar to Matlab
      ii python-matplotlib-data 0.99.3-1 Python based plotting system (data package)

      ####python-numpy

      dpkg -l |grep numpy
      ii python-numpy 1:1.4.1-5 Numerical Python adds a fast array facility to the Python language

      ####libsndfile

      dpkg -l |grep libsndfile
      ii libsndfile1 1.0.21-3+squeeze1 Library for reading/writing audio files
      ii libsndfile1-dev 1.0.21-3+squeeze1 Development files for libsndfile; a library for reading/writing audio files

      Att,

      Eng Eder de Souza

  10. Eduardo Assis
    janeiro 18, 2012 às 4:08 pm

    Eder valeu pelas dicas.

    Seguem novos problemas:

    root@sistema:~/scikits.audiolab-0.11.0# python setup.py install
    Traceback (most recent call last):
    File “setup.py”, line 32, in
    from numpy.distutils.core import setup
    File “/usr/lib/python2.6/site-packages/numpy/__init__.py”, line 132, in
    import add_newdocs
    File “/usr/lib/python2.6/site-packages/numpy/add_newdocs.py”, line 9, in
    from lib import add_newdoc
    File “/usr/lib/python2.6/site-packages/numpy/lib/__init__.py”, line 4, in
    from type_check import *
    File “/usr/lib/python2.6/site-packages/numpy/lib/type_check.py”, line 8, in
    import numpy.core.numeric as _nx
    File “/usr/lib/python2.6/site-packages/numpy/core/__init__.py”, line 5, in
    import multiarray
    ImportError: /usr/lib/python2.6/site-packages/numpy/core/multiarray.so: wrong ELF class: ELFCLASS32

    Estou usando Slackware 64 Bits 13.37

    root@sistema:~# python
    Python 2.6.6 (r266:84292, Nov 27 2010, 17:27:14)
    [GCC 4.5.1] on linux2
    Type “help”, “copyright”, “credits” or “license” for more information.
    >>>

    Abraços.

    • ederwander
      janeiro 18, 2012 às 4:19 pm

      O novo erro indica a falta do numpy ou incompatibilidade de versões…
      você instalou o python-numpy? minha versão aqui é 1.4.1-5

      Eng Eder de Souza

  11. Eduardo Assis
    janeiro 18, 2012 às 7:31 pm

    Eder estou usando um pacote compilado para slack:

    numpy-1.4.1-i686-3sl.txz
    matplotlib-0.99.1.2-i486-1sl.txz

    Abraços

    • Eduardo Assis
      janeiro 18, 2012 às 8:01 pm

      Eder, agradeço sua ajuda.

      Estou quase lá, remove os pacotes e agora estou instalando um por um.

      baixei: scipy-0.10.0

      Quando rodo:

      root@sistema:/tmp# /var/lib/asterisk/agi-bin/pahh.py
      Traceback (most recent call last):
      File “/var/lib/asterisk/agi-bin/pahh.py”, line 5, in
      import scipy.signal
      ImportError: No module named scipy.signal

      Estamos quase lá.

      Depois irei criar um How-To para ajudar todos.

      Abraços.

      • ederwander
        janeiro 18, 2012 às 8:57 pm

        Olá você esta quase lahh o erro diz que não existe o modulo scipy.signal, em meus servidores estou usando a seguinte versão do scipy

        sip:~# dpkg -l |grep scipy
        ii python-scipy 0.7.2+dfsg1-1 scientific tools for Python

        Ou seja versão 0.7.2 do scipy ….

        esta é a ultima dependencia critica, depois desta os outros modulos são nativos do python e tudo deverá funcionar ….

        Quando todas as dependencias estiverem sanadas ao executar na mão irá receber a seguinte saida

        Traceback (most recent call last):
        File “/var/lib/asterisk/agi-bin/pahh.py”, line 57, in
        file=os.fdopen(FD, ‘rb’)
        OSError: [Errno 9] Bad file descriptor

  12. Eduardo Assis
    janeiro 18, 2012 às 10:11 pm

    é acho que o erro é mais em baixo, baixei a 0.7.2 e quando rodo:
    python setup.py install

    Recebo no final:

    File “scipy/integrate/setup.py”, line 10, in configuration
    blas_opt = get_info(‘blas_opt’,notfound_action=2)
    File “/usr/lib64/python2.6/site-packages/numpy/distutils/system_info.py”, line 303, in get_info
    return cl().get_info(notfound_action)
    File “/usr/lib64/python2.6/site-packages/numpy/distutils/system_info.py”, line 454, in get_info
    raise self.notfounderror,self.notfounderror.__doc__
    numpy.distutils.system_info.BlasNotFoundError:
    Blas (http://www.netlib.org/blas/) libraries not found.
    Directories to search for the libraries can be specified in the
    numpy/distutils/site.cfg file (section [blas]) or by setting
    the BLAS environment variable.

    Baixei esse tal de BLAS e segui os passos desse site:
    http://www.scipy.org/Installing_SciPy/BuildingGeneral#head-a99e89881841cba43f7091c443a0ccfc9f19f394

    Building BLAS library from Netlib

    e nada

    Tem mais alguma ideia ?

    Abraços.

  13. Eduardo Assis
    janeiro 19, 2012 às 7:37 am

    Novos erros:

    Compilando o:scipy-0.7.2

    # python setup.py install

    File “scipy/integrate/setup.py”, line 10, in configuration
    blas_opt = get_info(‘blas_opt’,notfound_action=2)
    File “/usr/lib64/python2.6/site-packages/numpy/distutils/system_info.py”, line 303, in get_info
    return cl().get_info(notfound_action)
    File “/usr/lib64/python2.6/site-packages/numpy/distutils/system_info.py”, line 454, in get_info
    raise self.notfounderror,self.notfounderror.__doc__
    numpy.distutils.system_info.BlasNotFoundError:
    Blas (http://www.netlib.org/blas/) libraries not found.
    Directories to search for the libraries can be specified in the
    numpy/distutils/site.cfg file (section [blas]) or by setting
    the BLAS environment variable.

    Segui as instruções de instalação do site:
    http://www.scipy.org/Installing_SciPy/BuildingGeneral#head-a99e89881841cba43f7091c443a0ccfc9f19f394

    Na Seção:
    Building BLAS library from Netlib

    Continua os mesmos erros.

    Comentando o import da scipy e rodando o comando na mão ele mostra o que vc falou que iria aparecer:
    # /var/lib/asterisk/agi-bin/pahh.py

    Traceback (most recent call last):
    File “/var/lib/asterisk/agi-bin/pahh.py”, line 57, in
    file=os.fdopen(FD, ‘rb’)
    OSError: [Errno 9] Bad file descriptor

    Abraços.

    • ederwander
      janeiro 20, 2012 às 5:42 pm

      Olá Eduardo o seu problema esta nas dependencias do python, estou utilizando o scipy para aplicar um filtro médio durante a captura do sinal para tratar com melhor resultado a frequencia da voz, sem esta dependeica o código nao irá funcionar 😦

      o Slack é isso mesmo infelizmente tudo nele tem que ser feito na mão …

  14. Rafael Temoteo
    janeiro 19, 2012 às 8:33 am

    Olá amigos. Estou testando a funcionalidade no CentOS. Consegui chegar até o erro informado acima. Quando executo na mão o pahh.py recebo a seguinte saída:

    /usr/lib64/python2.4/site-packages/scipy/misc/__init__.py:25: DeprecationWarning: NumpyTest will be removed in the next release; please update your code to use nose or unittest
    test = NumpyTest().test

    /usr/lib64/python2.4/site-packages/scipy/special/__init__.py:23: DeprecationWarning: NumpyTest will be removed in the next release; please update your code to use nose or unittest
    test = NumpyTest().test
    /usr/lib64/python2.4/site-packages/scipy/optimize/__init__.py:19: DeprecationWarning: NumpyTest will be removed in the next release; please update your code to use nose or unittest
    test = NumpyTest().test
    /usr/lib64/python2.4/site-packages/scipy/linalg/__init__.py:32: DeprecationWarning: NumpyTest will be removed in the next release; please update your code to use nose or unittest
    test = NumpyTest().test
    /usr/lib64/python2.4/site-packages/scipy/interpolate/__init__.py:15: DeprecationWarning: NumpyTest will be removed in the next release; please update your code to use nose or unittest
    test = NumpyTest().test
    /usr/lib64/python2.4/site-packages/scipy/integrate/__init__.py:16: DeprecationWarning: NumpyTest will be removed in the next release; please update your code to use nose or unittest
    test = NumpyTest().test
    /usr/lib64/python2.4/site-packages/scipy/fftpack/__init__.py:21: DeprecationWarning: NumpyTest will be removed in the next release; please update your code to use nose or unittest
    test = NumpyTest().test
    /usr/lib64/python2.4/site-packages/scipy/signal/__init__.py:17: DeprecationWarning: NumpyTest will be removed in the next release; please update your code to use nose or unittest
    test = NumpyTest().test
    Traceback (most recent call last):
    File “/var/lib/asterisk/agi-bin/pahh.py”, line 57, in ?
    file=os.fdopen(FD, ‘rb’)
    OSError: [Errno 9] Bad file descriptor

    Configurei o contexto conforme recomendado porém ao realizar a chamada ele não me permite falar e o asterisk retorna o seguinte erro:

    — Executing [9020@from-internal:1] Answer(“SIP/1234-000002bf”, “”) in new stack
    — Executing [9020@from-internal:2] EAGI(“SIP/1234-000002bf”, “pahh.py”) in new stack
    — Launched AGI Script /var/lib/asterisk/agi-bin/pahh.py
    — AGI Script pahh.py completed, returning 0
    — Executing [9020@from-internal:3] GotoIf(“SIP/1234-000002bf”, “0hello:bye”) in new stack
    — Executing [9020@from-internal:4] NoOp(“SIP/1234-000002bf”, “You Said = “) in new stack
    — Executing [9020@from-internal:5] Hangup(“SIP/1234-000002bf”, “”) in new stack
    == Spawn extension (from-internal, 9020, 5) exited non-zero on ‘SIP/1234-000002bf’

    Alguem tem alguma luz ? Abraço e parabéns ao Eder!

    • ederwander
      janeiro 19, 2012 às 8:46 am

      Olá Rafael a principio olhando as mensagens de DeprecationWarning está ocorrendo alguma incompatibilidade entre o seu numpy e o scipy as versões parecem ser incompatíveis, um outro ponto crítico que me parece influenciar é a versão do seu interpretador python pelas mensagens vejo que sua versão é a 2.4 atualize para a 2.6 ….

      Eng Eder de Souza

  15. ederwander
    janeiro 19, 2012 às 11:51 am

    Rafael fiz um update no código para a sua situação onde se tem interpretadores antigos instalados, também retirei a necessidade da instalação do módulo matplotlib 🙂

    baixar versão mais recente e corrente aqui
    https://raw.github.com/ederwander/Asterisk-Google-Speech-Recognition/master/pahh.py

    • Rafael Temoteo
      janeiro 19, 2012 às 2:20 pm

      Peguei sua nova versão e ele executa sem aqueles warnings e entra no contexto porém não detecta o que eu falo. Segue minha saída

      [root@central1 ~]# python /var/lib/asterisk/agi-bin/pahh.py
      Traceback (most recent call last):
      File “/var/lib/asterisk/agi-bin/pahh.py”, line 78, in ?
      file=os.fdopen(FD, ‘rb’)
      OSError: [Errno 9] Bad file descriptor

      Em seguida no contexto do asterisk ele executa o script mas retorna 0. Eu falo mas ele nao detecta nada. Segue abaixo:

      Executing [9020@from-internal:1] Answer(“SIP/1234-0000038d”, “”) in new stack
      — Executing [9020@from-internal:2] EAGI(“SIP/1234-0000038d”, “pahh.py”) in new stack
      — Launched AGI Script /var/lib/asterisk/agi-bin/pahh.py
      — AGI Script Executing Application: (NOOP) Options: (Hello Waiting For Speech …)
      — Playing ‘beep’ (escape_digits=) (sample_offset 0)
      — AGI Script Executing Application: (NOOP) Options: (Speech Detected Recording…)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
      — AGI Script pahh.py completed, returning 0
      — Executing [9020@from-internal:3] GotoIf(“SIP/1234-0000038d”, “0hello:bye”) in new stack
      — Executing [9020@from-internal:4] NoOp(“SIP/1234-0000038d”, “You Said = “) in new stack
      — Executing [9020@from-internal:5] Hangup(“SIP/1234-0000038d”, “”) in new stack
      == Spawn extension (from-internal, 9020, 5) exited non-zero on ‘SIP/1234-0000038d’

      Obrigado pela ajuda!

  16. ederwander
    janeiro 19, 2012 às 8:08 pm

    Olá Rafael o seu código está quase funcionando, pelo Debug percebo que a execução ocorreu sem problemas no processamento da voz capturado pelo file descriptor, o seu proximo passo seria fazer o encode dos dados para o formato .flac e me parece que o script está morrendo nesta parte acredito que o seu problema possa estar da linha 245 em diante, por seu interpretador ser muito antigo 2.4 alguma função nativa que estou chamando pode estar parando o código, eu testei o código em interpretadores python 2.5 e 2.6 e em ambos não tive problemas ….

    Neste caso não vai ter como, você terá que debugar o código da linha 245 para frente, meu palpite está linha 245:fmt = Format(‘flac’, ‘pcm16’) no momento em que chamo a função Format para estipular o tipo de encode a ser usado algum erro possa estar acontecendo aqui …

    Eng Eder de Souza

    • Rafael Temoteo
      janeiro 20, 2012 às 8:29 am

      Olá Eder. Obrigado mais uma vez pela ajuda. Bem, vou providenciar o upgrade para a versão 2.6 e testa-la, acredito que seja a maneira mais prática para por para funcionar.

      Abraço!

  17. Alexandre
    janeiro 19, 2012 às 10:53 pm

    Opaaa…
    Legal o script
    Então tava tentando fazer funcionar aqui no meu debian 6 com asterisk 10.1.0-rc1
    Instalei como diz o readme, as dependencias foram instaladas sem problemas.
    Quando executo o pahh.py no terminal aparece o seguinte:

    Traceback (most recent call last):
    File “pahh.py”, line 78, in
    file=os.fdopen(FD, ‘rb’)
    OSError: [Errno 9] Bad file descriptor

    O extensions.conf está exatamento como no seu exemplo, mas quando ligo para o numero 11111111 aparece o seguinte no console do asterisk:

    — Executing [11111111@extencao:1] Answer(“SIP/11-0000000e”, “”) in new stack
    [Jan 19 23:47:47] WARNING[10189]: pbx.c:4359 pbx_extension_helper: No application ‘eagi,pahh.py’ for extension (extencao, 11111111, 2)
    == Spawn extension (extencao, 11111111, 2) exited non-zero on ‘SIP/11-0000000e

    E a ligação cai imediatamente, o que pode ser?? alguem pode me ajudar??
    Grato

  18. ederwander
    janeiro 19, 2012 às 10:57 pm

    Fala ae Alexandre este erro esta no seu extensions.conf

    Para distribuições asterisk mais recentes o eagi deve ser chamado assim:

    exten=>_11111111,n,eagi(pahh.py)

    Eng Eder de Souza

  19. Alexandre
    janeiro 19, 2012 às 11:18 pm

    Opa valeu brigadao,
    o problema é que acabei de instalar a 1.8 pra testar .kkkkk
    mais nao tem problema testo nas duas
    muito obrigado pela resposta

    qualquer cois, qualquer outro futuro projeto to ai
    valeu

  20. Alexandre
    janeiro 19, 2012 às 11:24 pm

    Aee ta funcionando na versão 1.8, depois vo testar na 10.1.0-rc1
    Valeu Muito obrigaooo

  21. jose
    janeiro 20, 2012 às 12:30 pm

    Eder
    estou tentando instalar no centos, já fiz todas as instalçoes das dependencias, com o seu script atualizado do dia janeiro 19, ele da o seguinte mensagem
    /var/lib/asterisk/agi-bin/pahh.py
    Traceback (most recent call last):
    File “/var/lib/asterisk/agi-bin/pahh.py”, line 22, in ?
    from scikits.audiolab import Format, Sndfile
    File “/usr/lib/python2.4/site-packages/scikits/audiolab/__init__.py”, line 39, in ?
    from numpy.testing import Tester
    ImportError: cannot import name Tester

    qualquer ajuda é bem vinda , muito obrigado

  22. jose
    janeiro 20, 2012 às 12:31 pm

    mas se executo no dial plan aparece
    — Executing [888@0:1] Answer(“SIP/3971-00000037”, “”) in new stack
    — Executing [888@0:2] EAGI(“SIP/3971-00000037”, “pahh.py”) in new stack
    — Launched AGI Script /var/lib/asterisk/agi-bin/pahh.py
    — AGI Script pahh.py completed, returning 0
    — Executing [888@0:3] GotoIf(“SIP/3971-00000037”, “0?hello:bye”) in new stack
    — Goto (0,888,5)
    — Executing [888@0:5] Hangup(“SIP/3971-00000037”, “”) in new stack

    • ederwander
      janeiro 20, 2012 às 5:27 pm

      Olá José seu interpretador python é muito antigo vejo que ele é 2.4 atualize para a versão 2.6 e reinstale as dependencias …

  23. jose
    janeiro 20, 2012 às 6:15 pm

    Obrigado Eder fiz a atualizaçao para o pyton26 mas nao funciona se alguem já conseguiu instalar no centos e puder deixar um tutorial agadeço
    abçs e parabens pela ideia genial

    • ederwander
      janeiro 20, 2012 às 7:36 pm

      Qual o Erro que esta pegando ??

  24. jose
    janeiro 20, 2012 às 9:13 pm

    Eder olha o erro executando na mao
    /var/lib/asterisk/agi-bin/pahh.py
    Traceback (most recent call last):
    File “/var/lib/asterisk/agi-bin/pahh.py”, line 78, in ?
    file=os.fdopen(FD, ‘rb’)
    OSError: [Errno 9] Bad file descriptor

  25. jose
    janeiro 20, 2012 às 9:13 pm

    Agora executando no asterisk
    — Executing [888@0:1] Answer(“SIP/3975-00000029”, “”) in new stack
    — Executing [888@0:2] EAGI(“SIP/3975-00000029”, “pahh.py”) in new stack
    — Launched AGI Script /var/lib/asterisk/agi-bin/pahh.py
    — AGI Script Executing Application: (NOOP) Options: (Hello Waiting For Speech …)
    — Playing ‘beep’ (escape_digits=) (sample_offset 0)
    — AGI Script Executing Application: (NOOP) Options: (Speech Detected Recording…)
    — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
    — AGI Script Executing Application: (NOOP) Options: (End of the Speech…)
    — AGI Script pahh.py completed, returning 0
    — Executing [888@0:3] GotoIf(“SIP/3975-00000029”, “0?hello:bye”) in new stack
    — Goto (0,888,5)
    — Executing [888@0:5] Hangup(“SIP/3975-00000029”, “”) in new stack

    • ederwander
      janeiro 20, 2012 às 9:33 pm

      José você esta quase lah, esta com o mesmo erro do Rafael …

      Faça um debug simples…

      Digite python
      vai receber uma saida como esta:

      Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
      [GCC 4.4.5] on linux2
      Type “help”, “copyright”, “credits” or “license” for more information.
      >>>

      Digite as seguinte linhas

      >>> import warnings
      >>> warnings.simplefilter(“ignore”, DeprecationWarning)
      >>> warnings.simplefilter(“ignore”, UserWarning)
      >>> from scikits.audiolab import Format, Sndfile
      >>> fmt = Format(‘flac’, ‘pcm16’)
      >>>

      Verefique se vai ocorrer algum erro, desconfio que o problema esteja ocorrendo no Format faça este teste e me reporte a saida.

      Eng Eder de Souza

  26. jose
    janeiro 20, 2012 às 9:21 pm

    Eu vi lá em cima o mesmo erro em linha diferente mas olha a dependencia instalada
    rpm -qa | grep scipy
    scipy-0.6.0-6.el5

  27. jose
    janeiro 20, 2012 às 9:30 pm

    aqui vai as dependecias instaladas para voce poder analizar
    rpm -qa | grep python-matplotlib
    python-matplotlib-0.99.1.2-1.el5

    rpm -qa | grep numpy
    numpy-1.2.1-2.el5

    rpm -qa | grep scipy
    scipy-0.6.0-6.el5

    rpm -qa | grep python-devel
    python-devel-2.4.3-44.el5_7.1

    rpm -qa | grep python-setuptools
    python-setuptools-0.6c9-5
    python-setuptools-0.6c5-2.el5

    rpm -qa | grep libsndfile-devel
    libsndfile-devel-1.0.17-5.el5

    outro detalhe é que quando vou instalar o scikits.audiolab-0.11.0 dá o erro:
    File “setup.py”, line 170, in setup_package

    File “setup.py”, line 117, in write_version_py

    ImportError: cannot import name git_revision

  28. jose
    janeiro 20, 2012 às 9:59 pm

    Eder olha o detalhe mesmo eu fazendo a atualizaçao do pyton para 2.6 ta aparecendo a 2.4 será que é isso? mesmo assim fiz o que vc pediu

    python
    Python 2.4.3 (#1, Sep 21 2011, 20:06:00)
    [GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
    Type “help”, “copyright”, “credits” or “license” for more information.
    >>> import warnings
    >>> warnings.simplefilter(.ignore., DeprecationWarning)
    File “”, line 1
    warnings.simplefilter(.ignore., DeprecationWarning)
    ^
    SyntaxError: invalid syntax
    >>> warnings.simplefilter(.ignore., UserWarning)
    File “”, line 1
    warnings.simplefilter(.ignore., UserWarning)
    ^
    SyntaxError: invalid syntax
    >>> from scikits.audiolab import Format, Sndfile
    /usr/lib/python2.4/site-packages/scikits.audiolab-0.11.0-py2.4-linux-i686.egg/scikits/audiolab/soundio/play.py:48: UserWarning: Could not i mport alsa backend; most probably, you did not have alsa headers when building audiolab
    warnings.warn(“Could not import alsa backend; most probably, ”
    >>> fmt = Format(.flac., .pcm16.)
    File “”, line 1
    fmt = Format(.flac., .pcm16.)
    ^
    SyntaxError: invalid syntax
    >>>

  29. jose
    janeiro 20, 2012 às 10:05 pm

    digitei python26 agora e fiz o novo debug, parece que ele esta com o python 2.4 e 2.6
    python26
    Python 2.6.5 (r265:79063, Feb 28 2011, 21:55:56)
    [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
    Type “help”, “copyright”, “credits” or “license” for more information.
    >>>
    >>>
    >>> import warnings
    >>> warnings.simplefilter(.ignore., DeprecationWarning)
    File “”, line 1
    warnings.simplefilter(.ignore., DeprecationWarning)
    ^
    SyntaxError: invalid syntax
    >>> warnings.simplefilter(.ignore., UserWarning)
    File “”, line 1
    warnings.simplefilter(.ignore., UserWarning)
    ^
    SyntaxError: invalid syntax
    >>> from scikits.audiolab import Format, Sndfile
    Traceback (most recent call last):
    File “”, line 1, in
    ImportError: No module named scikits.audiolab
    >>> fmt = Format(.flac., .pcm16.)
    File “”, line 1
    fmt = Format(.flac., .pcm16.)
    ^
    SyntaxError: invalid syntax

    • ederwander
      janeiro 20, 2012 às 10:09 pm

      José você digitou os comandos errados repare nas aspas do comando que lhe enviei faça exatamente igual pela sua saida esta faltando as aspas …

  30. jose
    janeiro 20, 2012 às 10:29 pm

    Desculpa Eder é a ansiedade copiei e nem percebi que nao ia as aspas
    python26
    Python 2.6.5 (r265:79063, Feb 28 2011, 21:55:56)
    [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
    Type “help”, “copyright”, “credits” or “license” for more information.
    >>> import warnings
    >>> warnings.simplefilter(“ignore”, DeprecationWarning)
    >>> warnings.simplefilter(“ignore”, UserWarning)
    >>> from scikits.audiolab import Format, Sndfile
    Traceback (most recent call last):
    File “”, line 1, in
    ImportError: No module named scikits.audiolab
    >>> fmt = Format(`flac´, `pcm16´)
    File “”, line 1
    fmt = Format(`flac´, `pcm16´)
    ^
    SyntaxError: invalid syntax

    • ederwander
      janeiro 20, 2012 às 10:31 pm

      bom, mesmo assim já da pra perceber uma coisa importante o python que está com as dependencias instaladas (numpy, scipy, audiolab) é a versão 2.4 você possue tambem o interpretador 2.6 instalado porem todas as dependencias não estão apontadas para a versão 2.6….

      Faça o mesmo digitando somente python para eu ver a saida também …

  31. jose
    janeiro 20, 2012 às 10:36 pm

    Obrigado Eder pela atençao

    python
    Python 2.4.3 (#1, Sep 21 2011, 20:06:00)
    [GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
    Type “help”, “copyright”, “credits” or “license” for more information.
    >>> import warnings
    >>> warnings.simplefilter(“ignore”, DeprecationWarning)
    >>> warnings.simplefilter(“ignore”, UserWarning)
    >>> from scikits.audiolab import Format, Sndfile
    Traceback (most recent call last):
    File “”, line 1, in ?
    File “scikits/audiolab/__init__.py”, line 25, in ?
    from pysndfile import formatinfo, sndfile
    File “scikits/audiolab/pysndfile/__init__.py”, line 1, in ?
    from _sndfile import Sndfile, Format, available_file_formats, \
    ImportError: No module named _sndfile
    >>> fmt = Format(`flac´, `pcm16´)
    File “”, line 1
    fmt = Format(`flac´, `pcm16´)
    ^
    SyntaxError: invalid syntax

    • ederwander
      janeiro 20, 2012 às 10:43 pm

      Pronto esta ae o seu erro o modulo audiolab não esta subindo, ou seja ele não foi corretamente instalado ….

  32. jose
    janeiro 20, 2012 às 10:46 pm

    ele dá esse erro no fim da instalaçao
    File “setup.py”, line 170, in setup_package

    File “setup.py”, line 117, in write_version_py

    ImportError: cannot import name git_revision

  33. jose
    janeiro 20, 2012 às 10:50 pm

    Obrigado Eder vou ver se descubro o porque do erro depois coloco um tuto aqui do centos
    abçs

  34. jose
    janeiro 22, 2012 às 8:41 am

    Eder
    Desisti do centos só dá erro na instalaçao do scikits.audiolab-0.11.0, entao instalei o debian e as dependencias ficaram iguais as suas, mas mesmo assim dá o erro abaixo
    alguma ideia do que possa ser?abçs
    root@debian:/usr/src/asterisk-1.8.7.0# /var/lib/asterisk/agi-bin/pahh.py
    Traceback (most recent call last):
    File “/var/lib/asterisk/agi-bin/pahh.py”, line 78, in
    file=os.fdopen(FD, ‘rb’)
    OSError: [Errno 9] Bad file descriptor

    • ederwander
      janeiro 22, 2012 às 11:12 am

      Na realidade este erro sempre vai ocorrer ao executar o script na mão, ele tenta abrir o File Descriptor e por consequencia não vai conseguir, agora tudo funciona diferente apos você chamar o script via EAGI pelo asterisk, o file descriptor neste caso vai existir 🙂

      Eder

  35. jose
    janeiro 22, 2012 às 1:21 pm

    Eder muito obrigado funcionou, pena que ta dificil configurar no centos acredto que seja por causa das versoes de numpy, eu até consegui colocar o python 2.6 ,qualquer novidade eu posto aqui
    abçs

    • ederwander
      janeiro 22, 2012 às 1:57 pm

      Perfeito José que bom que funcionou, você chegou muito perto de fazer funcionar no CentOS aposto que logo consiguirá resolver as dependencias necessárias 🙂

      Eng Eder de Souza

  36. Marcus
    setembro 28, 2012 às 4:28 pm

    Eder, boa tarde. Espetacular post, porém o cabeçudo aqui esta com um problema.

    Ao executar i dialplan apresenta o seguinte erro:

    — Executing [2@selctbanco:2] AGI(“SIP/203-00000010”, “pahh.py”) in new stack
    [Sep 28 16:16:54] WARNING[9709]: res_agi.c:886 launch_script: Failed to execute ‘/var/lib/asterisk/agi-bin/pahh.py’: File does not exist.

    Bom me ajudar. Grato.

    • ederwander
      setembro 28, 2012 às 4:33 pm

      coloque o arquivo pahh.py no diretório /var/lib/asterisk/agi-bin/

      • Marcus Silva
        setembro 29, 2012 às 1:37 pm

        Eder muito obrigado, logo depois percebi a burrice. Valeu mesmo. Outra questão referente a o script de portabilidade, vi em outro post seu o link do novo script (https://gist.github.com/3306926) como funciona ou melhor qual a saída do resultado para utilizar no dialplan. Fiz o teste e não retornou nada. Pode me ajudar?

  37. Rubens Almeida
    outubro 9, 2012 às 2:39 pm

    Boa tarde Eder… estou usando o seu script e realmente dá asas a liberdade. Estou testando uma URA com reconhecimento de voz e, se tudo der certo, vou tentar criar meio que uma pagina onde receberá a gravação do audio + a resposta do google para que seja realizada uma sintonia fina e as opções da URA ler esse banco. Isso seria para no caso de um usuario falar atendimento e o google entender atende mentos, receber esse log da gravação+responsta e cadastrar em uma base que isso quer dizer atendimento, fazendo com que o gotoif leia essa base para saber para onde encaminha, compreendeu? Vi o comentario de alguem para tambem tentar enviar um texto e recolher o audio da goggle, sabe algo sobre? Vamos nos falando e parabens pelo trabalho.

    • ederwander
      outubro 9, 2012 às 3:24 pm

      Perfeito Rubens bom saber !

      Não sei se você sabe mas o asterisk tem uma função regex que pode te ajudar no que você precisa !

      Vamos lá olha só, usando o seu exemplo “atendimento” …

      exten=>_11111111,1,Answer()
      exten=>_11111111,n,eagi(pahh.py)
      exten=>_11111111,n,GotoIf($[${EXISTS(${GoogleUtterance})}]?hello:bye)
      exten=>_11111111,n(hello),NoOP(You Said = ${GoogleUtterance})
      exten=>_11111111,n,Set(foo=${REGEX(“atend” ${TOLOWER(${GoogleUtterance})})})
      exten=>_11111111,n,GotoIf($[“${foo}” = “1”]?teste,s,1)
      exten=>_11111111,n(bye),Hangup()

      [teste]
      exten => s,1,Playback(beep)

      Veja que estou usando a função “REGEX” e “TOLOWER” do asterisk, a regex procura por expressões regulares estipuladas por você, neste caso eu coloquei “atend” então será uma expressão válida qualquer palavra derivada de “atend” ou seja (atendimento, atendi, atendo, atenda, etc, etc) o tolower é usado para garantir que a frase do google fique em minusculo !

      Eng Eder de Souza

      • Rubens Almeida
        outubro 9, 2012 às 3:43 pm

        Boa tarde Eder,

        Primeiro prazer em falar contigo. Sou um leitor do seu blog pois manda muito bem. Parabéns pelo trabalho.
        Quanto a sua dica, esta anotada. Mas nos testes que estou fazendo, a fonética não esta ajudando muito e as vezes a resposta do google não é muito equivalente ao que os usuários tentam expressar. A ideia é ouvir o que o usuário tentou falar e ver o que o google respondeu. Neste caso, conseguiria fazer uma sintonia fina para que, quando alguém tentar falar e aparecer algo não equivalente, consiga passar… para isso eu teria que confirmar para o usuário a opção correspondente antes de enviar, por isso o TTS seria legal para não precisar gravar todos os áudios… o arquivo de áudio que teria que pegar seria o TmpSpeechFile.flac?

      • ederwander
        outubro 9, 2012 às 6:29 pm

        Boa tarde Rubens,

        Obrigado pelas palavras de apoio !

        O arquivo de áudio é criado com números e strings randômicos o nome do audio é criado como TmpSpeechFile-(ALGUMNUMEROELETRAS).flac você vai precisar pegar o nome do arquivo atual na variável “FileNameTmp”, isso permite que o script execute chamadas simultâneas pois não vai “encavalar” os áudios gravados durante a execução de cada ligação, no fim da execução o script limpa o arquivo atual do disco!

        Sim é possível usar o TTS para efetuar o que você precisa, se for utilizar o tts do próprio google vai precisar gravar temporariamente todos os áudios de .mp3 para .gsm, o google cria o TTS em .mp3 e vc vai precisar fazer o encode para .gsm para que o asterisk consiga dar o play …

        Então depois do retorno da frase ou palavra feito pelo arquivo “TmpSpeechFile-(ALGUMNUMEROELETRAS).flac” vocÊ mandaria o google criar um arquivo de áudio falando a frase ou palavra que o google entendeu…

        Usar o TTS do google é ridiculo de fácil com python veja:

        #Eng Eder de souza
        #teste de TTS do google
        import urllib2

        url = “http://translate.google.com/translate_tts?tl=pt_br&q=muito+legal+!”
        request = urllib2.Request(url)
        request.add_header(‘User-agent’, ‘Mozilla/5.0’)
        opener = urllib2.build_opener()

        f = open(“google.mp3”, “wb”)
        f.write(opener.open(request).read())
        f.close()

        Neste exemplo o google esta criando um arquivo .mp3 chamado “google.mp3” o conteúdo dele é uma frase falada “muito legal!”

        []’s

        Eng Eder de Souza

  38. jose
    agosto 21, 2013 às 2:36 pm

    Eder
    O site do google abaixo nao funciona mais, voce sabe me dizer se existe algum outro que possa fazer a leitura?
    https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=pt-BR
    Obrigado

    • ederwander
      agosto 21, 2013 às 2:56 pm

      Ainda uso o mesmo link, acabei de testar em meu servidor asterisk 🙂

      Quando vc acessa via browser ele realmente não funciona ….

  39. jose
    agosto 21, 2013 às 3:12 pm

    obrigado Eder vou testar

  40. Marcelo
    maio 22, 2014 às 12:02 pm

    Olá Eder, agora é verdade. A API v1 do Google speech não funciona mais. Agora existe a versão 2 que aceitará 50 acessos por dia com key. Você tem planos de atualizar o teu script para esta versão?

    • ederwander
      outubro 27, 2014 às 11:53 am

      Marcelo eu reescrevi o script pahh.py com uma chave global para as consultas, mas não tive muito tempo de testar, aqui pra mim está funcionando, desculpa a demora é que eu realmente não tenho muito tempo.

  41. Eduardo araujo
    outubro 27, 2014 às 10:13 am

    Bom dia, Eng Eder.
    fiz todos os processo blz, porem amigo, uma simples duvida funciona em asterisk 1.4.44?
    Porque estou falando ele não reconhece minha voz.

    — Executing [321@google:1] Answer(“SIP/5025-000025c3”, “”) in new stack
    — Executing [321@google:2] EAGI(“SIP/5025-000025c3”, “pahh.py”) in new stack
    — Launched AGI Script /var/lib/asterisk/agi-bin/pahh.py
    — AGI Script Executing Application: (NOOP) Options: (Hello Waiting For Speech …)
    — Playing ‘beep’ (escape_digits=) (sample_offset 0)
    — AGI Script Executing Application: (NOOP) Options: (Speech Detected Recording…)
    — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
    — AGI Script Executing Application: (NOOP) Options: (End of the Speech…)
    — AGI Script pahh.py completed, returning 0
    — Executing [321@google:3] GotoIf(“SIP/5025-000025c3”, “0?hello:bye”) in new stack
    — Goto (google,321,5)
    — Executing [321@google:5] Hangup(“SIP/5025-000025c3”, “”) in new stack

    Alguma ideia?

    abs.

    • ederwander
      outubro 27, 2014 às 11:52 am

      Por favor faça o download do novo arquivo pahh.py no github e veja se funciona!

  42. ederwander
    outubro 27, 2014 às 11:49 am

    Este AGI foi escrito para a versão 1 do GoogleSpeech, eles alteraram a versão, eu reescrevi o script pahh.py com uma chave global para as consultas, mas não tive muito tempo de testar, aqui pra mim está funcionando, por favor faça o download do novo arquivo pahh.py no github e veja se funciona!

  43. Eduardo araujo
    outubro 27, 2014 às 1:03 pm

    Amigo, estou com essa versão segue:

    1 #!/usr/bin/python
    2 #Copyright (c) 2012, Eng Eder de Souza
    3 #Accessing the Google API for speech recognition With Asterisk!
    4 #Eng Eder de Souza
    5 #date 15/01/2012
    6 #https://ederwander.wordpress.com/2012/01/16/google-speech-python-asterisk/
    7 #
    8 # This program is free software, distributed under the terms of
    9 # the GNU General Public License Version 2. See the COPYING file
    10 # at the top of the source tree.
    11 #
    12 #Revision 0.2

    Muito obrigado pela atenção!

    • ederwander
      outubro 27, 2014 às 1:08 pm

      Eu atualizei para a revisão 0.3, olha lá

      #Revision 0.3
      #History:
      #18/01/2012 bug fix in local variable declaration
      #19/01/2012 suport for old python interpretator
      #19/01/2012 removed matplotlib dependencies
      #19/01/2012 Submission of warnings DeprecationWarning and UserWarning
      #27/10/2014 Update to Google speech-api v2

  44. Eduardo araujo
    outubro 27, 2014 às 1:11 pm

    Executing [321@google:1] Answer(“SIP/5025-00002632”, “”) in new stack
    — Executing [321@google:2] EAGI(“SIP/5025-00002632”, “pahh.py”) in new stack
    — Launched AGI Script /var/lib/asterisk/agi-bin/pahh.py
    — AGI Script Executing Application: (NOOP) Options: (Hello Waiting For Speech …)
    — Playing ‘beep’ (escape_digits=) (sample_offset 0)
    — AGI Script Executing Application: (NOOP) Options: (Speech Detected Recording…)
    — AGI Script Executing Application: (NOOP) Options: (Speech Found …)
    — AGI Script Executing Application: (NOOP) Options: (End of the Speech…)
    — AGI Script Executing Application: (NOOP) Options: (speech not recognized …)
    — AGI Script pahh.py completed, returning 0
    — Executing [321@google:3] GotoIf(“SIP/5025-00002632”, “0?hello:bye”) in new stack
    — Goto (google,321,5)
    — Executing [321@google:5] Hangup(“SIP/5025-00002632”, “”) in new stack
    == Spawn extension (google, 321, 5) exited non-zero on ‘SIP/5025-00002632’
    == End MixMonitor Recording SIP/5025-00002632
    asterisk*CLI>

    😦

    • ederwander
      outubro 27, 2014 às 1:13 pm

      só olhando assim não dá pra debugar, ja tentou rodar o script na mão para ver o q aparece?
      python /var/lib/asterisk/agi-bin/pahh.py

  45. Eduardo araujo
    outubro 27, 2014 às 1:12 pm

    Estou usando a indicada!

    12 #Revision 0.3
    13 #History:
    14 #18/01/2012 bug fix in local variable declaration
    15 #19/01/2012 suport for old python interpretator
    16 #19/01/2012 removed matplotlib dependencies
    17 #19/01/2012 Submission of warnings DeprecationWarning and UserWarning
    18 #27/10/2014 Update to Google speech-api v2

  46. Eduardo araujo
    outubro 27, 2014 às 1:28 pm

    Segue o erro: eu achei que era apenas um aviso!
    root@asterisk:/home/eduardo/scikits.audiolab-0.11.0# python /var/lib/asterisk/agi-bin/pahh.py
    Traceback (most recent call last):
    File “/var/lib/asterisk/agi-bin/pahh.py”, line 83, in
    file=os.fdopen(FD, ‘rb’)
    OSError: [Errno 9] Bad file descriptor

    • ederwander
      outubro 27, 2014 às 1:37 pm

      Saída está OK, Eu acredito que a instalação do módulo Sndfile não está contemplando o codec FLAC

  47. Eduardo araujo
    outubro 27, 2014 às 1:52 pm

    root@asterisk:/home/eduardo/scikits.audiolab-0.11.0# dpkg -l |grep sndfile
    ii libsndfile1 1.0.21-3+squeeze1 Library for reading/writing audio files
    ii libsndfile1-dev 1.0.21-3+squeeze1 Development files for libsndfile; a library for reading/writing audio files

    Pode ser a versão ?

    root@asterisk:/home/eduardo/scikits.audiolab-0.11.0# cat /etc/issue
    Debian GNU/Linux 6.0 \n \l

    • ederwander
      outubro 27, 2014 às 2:57 pm

      Não é a versão

      Faça um debug simples…
      Digite python
      vai receber uma saida como esta:
      Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
      [GCC 4.4.5] on linux2
      Type “help”, “copyright”, “credits” or “license” for more information.
      >>>

      Digite as seguinte linhas
      >>> import warnings
      >>> warnings.simplefilter(‘ignore’, DeprecationWarning)
      >>> warnings.simplefilter(‘ignore’, UserWarning)
      >>> from scikits.audiolab import Format, Sndfile
      >>> fmt = Format(‘flac’, ‘pcm16’)
      >>>

      PS: é tudo aspas simples acima OK

      Veja se aparece algum erro !

  48. Eduardo araujo
    outubro 27, 2014 às 5:01 pm

    Amigo, acabei de testar dei um reload no asterisk.
    E foi sucesso total.

    — Executing [321@google:3] GotoIf(“SIP/5025-00002717”, “1?hello:bye”) in new stack
    — Goto (google,321,4)
    — Executing [321@google:4] NoOp(“SIP/5025-00002717”, “You Said = financeiro,confidence:0.90199059”) in new stack
    — Executing [321@google:5] Hangup(“SIP/5025-00002717”, “”) in new stack
    == Spawn extension (google, 321, 5) exited non-zero on ‘SIP/5025-00002717’

    • ederwander
      outubro 27, 2014 às 5:13 pm

      Legal 🙂

  49. novembro 25, 2014 às 1:28 pm

    olá amigos . alguem conseguiu implementar no elastix 2.4 com centos.. estou na briga aki e nao consigo de forma alguma. instalar o scikits.audiolab

    • ederwander
      novembro 25, 2014 às 1:41 pm

      Qual erro apresentado ?

  50. novembro 26, 2014 às 12:46 am

    hoje com muito sacrificiu conseguir instalar . scikits.audiolab. mas pra isso … tentei de varias formas atualizar o python 2.4 do elastix. mas nao vai .diz q ta na versao mas atual. ai tentei fazer da seguinte forma. yum install python26 . ai foi. ai tipo ta os dois python instalados
    depois disso conseguir instalar instalar o sciktis.audiolab com o seguinte ocmando . python26 setup install ai foi de boa . deu tudo certo assim mostrou no final. ja com o comando python setup install ele da erro .

    bom mas ja q conseguir instalar . ai tentei fazer funcionar
    mas a chamanda er desligada.

  51. Janduy Euclides
    fevereiro 11, 2018 às 10:05 am

    Eder, bom dia. Tudo bem?

    Amigo será que consegue me dar um help? Por favor!
    Estou validando seu procedimento em um LAB, porém não ocorreu erro algum ao executar o script(Python). Acredito que pelo tempo que foi feito o seu script agora há a necessidade de usar (Google Cloud Speech API ou Speech API) ambos eu criei a chave para adicionar ao python, ao chamar no dialplan não ouço nem o som (BEEP) etc…

    Também validei as dependências conforme sua documentação do Github.

    Segue algumas informações complementares:

    SO: Ubuntu 16.04
    Asterisk: Versão 13

    Dialplan:

    context ivrspeech {

    s => {
    Answer();
    AGI(asr.py);
    NoOp(Detectado….:: ${GoogleUtterance});

    if ( “${GoogleUtterance}” == “helo” || “${GoogleUtterance}” == “alo” ){

    NoOp(Você disse=$${GoogleUtterance});

    } else

    NoOp(===== Não foi reconhecido nenhuma palavra =======);
    Hangup();

    }

    }

  52. Sibtain Raza
    janeiro 23, 2019 às 2:23 pm

    how to increase the time duration from 10 seconds to unlimited(i.e when ivr stop speaking)

  1. No trackbacks yet.

Deixar mensagem para Eduardo araujo Cancelar resposta