VOZ logo

Manipulando la voz en Asterisk

En marzo de 2007, escribí un artículo sobre un parche que permitía a Asterisk capturar la voz y distorsionarla lo suficiente para parece que hablaba un «pitufo» o bien un «troll».

Pues hoy leo que el proyecto ha seguido vivo y han sacado nuevas actualizaciones que permiten modificar el «pitch» (la velocidad de reproducción en tiempo real de la voz) con algunas mejoras interesantes, como la actualización a Asterisk 1.4 y una reducción considerable de la carga de CPU (algo desproporcionada cuando lo probé en aquel momento).

Para probarlo, tan solo hay que ejecutar esto en consola:

# You can also install it through your package manager
cd /usr/src
wget http://www.surina.net/soundtouch/soundtouch-1.3.1.tar.gz
tar xvzf soundtouch-1.3.1.tar.gz
cd soundtouch-1.3.1/
./configure –prefix=/usr
make && make install
# install libsoundtouch4c
cd /usr/src
wget http://www.lobstertech.com/code/libsoundtouch4c/releases/libsoundtouch4c-0.4.tar.gz
tar -xzvf libsoundtouch4c-0.4.tar.gz
cd libsoundtouch4c-0.4
./configure –prefix=/usr
make && make install
# install the voice changer
cd /usr/src
wget http://www.lobstertech.com/code/voicechanger/releases/voicechanger-0.6.tar.gz
tar -xzvf voicechanger-0.6.tar.gz
cd voicechanger-0.6
make && make install
# load it in to asterisk
make start

Y una vez compilado corréctamente, tan solo añadir una linea como esta que deberás modificar convenientemente para ajustarlo a tu dialplan:

exten=>_XXX,1,VoiceChangeDial(SIP/${EXTEN}|T(30)P(-5.0)D(8:9)H(*))

El resultado no tiene precio. 😀

Más información: http://www.lobstertech.com/code/voicechanger/

InstantByte Logo
Anterior artículoPublicados los vídeos de las conferencias del Asterisk-Tag
Siguiente artículo 1503-1502Frases para recordar (I)

Debate en este artículo

  • Vaya, cuando hago el.
    cd soundtouch-1.3.1/
    ./configure –prefix=/usr

    me dice:
    # ./configure –prefix=/usr
    configure: error: cannot find install-sh or install.sh in config ./config

    Y con razón puesto que no existen esos ficheros.

  • Que patatilla somos a veces…

    Necesitas tener instalado los paquetes «automake» y «libtool»
    Con esto, ejecutas el script bootstrap y ya está listo para seguir los pasitos. 😛

  • […] en el blog de Elio que existe un módulo para distorsionar la voz, usando Asterisk, denominado VoiceChanger. Como […]

  • Iñaki, eso me pasaba a mí con fedora, y al final un simple yum install soundtouch lo ha arreglado (ese y el devel).
    Por cierto, sí que están el install.sh, lo que pasa que dentro del /config 😉

  • juanmol

    A mi me da este fallo:
    [Jun 12 09:23:34] WARNING[24547]: pbx.c:1832 pbx_extension_helper: No application ‘VoiceChangeDial’ for extension (outgoing, 1000, 1)
     == Spawn extension (outgoing, 1000, 1) exited non-zero on ‘SIP/1001-b690bac0’

    ¿¿¿???

  • juanmol

    vale vale, ya me chuta, fallo mio. Es la caña 🙂 lo que me sale es lo de cambiar la voz durante la llamada, pone algo de allow pitch changes during conversation by pressing DTMF keys ‘up’ and ‘down’ ¿cuales son esas teclas?

  • ramoncio

    Muy divertido!
    Lo he probado en un Elastix 1.1 de pruebas y funciona de maravilla.
    Eso sí, he tenido que cambiar un poco el script de instalación, instalando libtool y autoconf y haciendo ./bootstrap porque me daba un error con el make:

    # Install soundtouch
    yum install libtool
    cd /usr/src
    wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz
    tar xfvz autoconf-2.61.tar.gz
    cd autoconf-2.61
    ./configure
    make && make install
    cd /usr/src
    wget http://www.surina.net/soundtouch/soundtouch-1.3.1.tar.gz
    tar xfvz soundtouch-1.3.1.tar.gz
    cd soundtouch-1.3.1
    ./bootstrap
    ./configure -prefix=/usr
    make && make install

    El resto tu script sí que me funciona bien, aunque yo he añadido una última parte que te crea la extensión para el freePBX:

    # configure freepbx
    cat < /etc/asterisk/extensions_custom.conf

    [from-internal-custom]
    exten => 4444,1,goto(soundtouch,s,1)
    [soundtouch]
    exten => s,1,Read(numeroallamar|pls-entr-num-uwish2-call|9)
    exten => s,n,Noop(Soundtouch llamando al numero ${numeroallamar})
    exten => s,n,VoiceChangeDial(SIP/tuproveedorsip/${numeroallamar}|T(30)P(-5.0)D(8:9)H(*))
    exten => s,n,Hangup()

    EOF

  • ramoncio

    juanmol, en el VoiceChangeDial puedes definir las teclas que quieras usar para cambiar el pitch, en el ejemplo de Elio:

    exten=>_XXX,1,VoiceChangeDial(SIP/${EXTEN}|T(30)P(-5.0)D(8:9)H(*))

    D(8:9) significa Digitos 8 y 9

  • ramoncio

    Me he dado cuenta que he hecho un fallo (poco importante, pero un fallo) en la parte del script que añade la configuración en extensions_custom.conf:
    en la línea del Noop, en lugar de $ hay que poner $, como una vez me enseñaste en la lista 🙂

  • […] la intención de hacer una Asterisk Night Party para frikear un rato… (alguno ya quiere cambiar el tono de voz para gastar una broma a su jefe… -espero no fastidiar la […]