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/

Debate en este artículo
-
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. 😛 -
Es brutal!
-
[…] 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 😉 -
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’¿¿¿???
-
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?
-
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 installEl 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
-
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
-
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 […]
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.