Asterisk Voice Changer
June 7, 2009
![]() This program is a voice changer module for Asterisk. This allows you to change the pitch of your voice in real time when placing VoIP calls. This software is not intended to change the gender of your voice as no formant adjustments are not implemented. This software however does an excellent job making you sound really creepy and often-times unrecognizable. Furthermore this software is not intended to guarentee your privacy as pitch shifting is not a one-way algorithm and hence can be reversed. If you are not familiar with Asterisk or Linux then you might want to check out this page instead exten => 666,1,Set(CALLERID(all)=${BULLY_FROM_HIGHSCHOOL})
exten => 666,2,VoiceChanger(-5.0)
exten => 666,3,Dial(SIP/Level3/${THE_PRESIDENT}|30|g)
exten => 666,4,StopVoiceChanger() ; not required
; ToDo: Say bad thingsDownload
Updates
InstallationOn your functioning Linux machine running Asterisk with the header files installed to /usr/include/asterisk (on Ubuntu, if you installed asterisk through your package manager, also install asterisk-dev) run the following commands to install the voice changer as well as its two dependencies: # install SoundTouch 1.3.1-jart
# you can also install it through your package manager
cd /usr/src
wget http://www.lobstertech.com/code/libsoundtouch4c/releases/soundtouch-1.3.1-jart.tar.gz
tar xvzf soundtouch-1.3.1-jart.tar.gz
cd soundtouch-1.3.1-jart/
./configure --enable-integer-samples --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.7.tar.gz
tar -xzvf voicechanger-0.7.tar.gz
cd voicechanger-0.7
make
make install
# load it in to asterisk
make startPre-0.7 Documentationexten => 666,1,Set(CALLERID(all)=${BULLY_FROM_HIGHSCHOOL})
exten => 666,2,VoiceChangeDial(SIP/Level3/${BARACK_OBAMA}|T(30)P(-5.0)D(8:9)H(*))
; ToDo: Say bad thingsThe application, VoiceChangeDial, functions as a Dial() replacement. Although the behavior of this application seeks to mimic Dial(), it is not perfect due to the fact that Asterisk does not properly abstract dial and bridging functionality. Warning: If you have audio problems after following the instructions above, your two call legs may be using different codecs or the RTP stream is being bridged directly between endpoints. I highly recommend using the following sip.conf parameters for all user agents using the voice changer: canreinvite=no
disallow=all
allow=ulawDocs -= Info about application 'VoiceChangeDial' =-
[Synopsis]
Voice Changer Dial Application
[Description]
Usage VoiceChangeDial(dialstring[|options])
Usage:
This app fuctions pretty much the same way as Dial() only you can do
cool stuff like change the pitch of your voice. Please note that
pitch changes are not very sophisticated, this will not make a man
sound like a woman or vice versa. It will however do a great job of
masking your voice by making you sound either like a chimpmunk or
Jabba the Hut.
Because this application needs to mangle voice data, it will need to
pass through Asterisk back-to-back. This means that if you are
switching SIP, the RTP will not pass from phone to phone, but will
be proxied through Asterisk. Therefore, VoiceChangeDial() will use
considerably more CPU and bandwidth than a normal Dial() operation.
Options:
p -- Apply effect to peer channel instead
P(f) -- Voice pitch in semitones. Negative is lower, positive
is higher. Default is -5.0
T(n) -- Dial timeout in seconds. If not set, waits 60 sec.
for other side to pickup
D(down:up[:delta]) -- Allow pitch changes during conversation by
pressing DTMF keys 'up' and 'down' with a semitones change
of 'delta'. Examples: D(*:#:5.0), D(1:2). The default
delta is 5.0 semitones.
H(x) -- Allow caller to hangup the peer by pressing '*'. This
is different from the behavior of 'h' in previous
releases of the voice changer. This option trumps 'd'
S(x) -- Allow peer to hangup themself by pressing DTMF digit 'x'.
Mnemonic is 'suicide'.
d -- **DEPRECATED** Allow pitch changes during conversation with
'*' and '#'
h -- **DEPRECATED** Allow caller to hangup the peer by pressing
'*'. This is different from the behavior of 'h' in previous
releases of the voice changer. This option trumps 'd'
s -- **DEPRECATED** Allow peer to hangup themself by pressing
'*'. Mnemonic is 'suicide'. This option trumps 'd'
Recommended Invocation:
VoiceChangeDial(SIP/bandwidth/+12036660420|T(30)P(-5.0)D(8:9)H(*))
This will wait 30 seconds for the called party to pickup, make
voice sound lower, and allow you to change your voice down and up
with digits '8' and '9'. You may also hang up the call with '*'.
Legal
Asterisk Voice Changer The program found on this page is free software and may be used, distributed, and modified under the terms of the GNU General Public License version 2.0. This software is distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. |
Tag Cloudaccounting assembly asterisk c django erlang games hacking i18n python speaking travel tutorial web Archive
June 2009 Popular Content
Asterisk Voice Changer
(4021 Views) Recent Comments
Asterisk Voice Changer
on Jun 8 by jart |
![Pound, The Phone Cat [Photo of a deranged cat]](/media/img/uglycat.jpg)

Comments
Jean-Luc Picard on August 27, 2008 [Permalink]
Excellent Work!
m31uk3 on October 7, 2008 [Permalink]
So cool I should be sleeping but I am talking to my self :)
Sébastien on November 24, 2008 [Permalink]
Hi,
I've made an application echoVoiceChnager based on your source code.
It's working
Now I'm trying to add this function on your voicechangeDial
Th only result I have is bad noise on my channel.
Do you think it's possible?
thanks for your response
Mike on February 9, 2009 [Permalink]
Keep getting a compile error
please advice.
Thank you.
[root@localhost voicechanger-0.6]# make
./sanity.sh
gcc -O -g -D_GNU_SOURCE -shared -fpic -c -o app_voicechangedial.o app_voicechangedial.c
app_voicechangedial.c:28:27: error: asterisk/file.h: No such file or directory
app_voicechangedial.c:29:29: error: asterisk/logger.h: No such file or directory
app_voicechangedial.c:30:28: error: asterisk/frame.h: No such file or directory
app_voicechangedial.c:31:30: error: asterisk/channel.h: No such file or directory
jart on February 13, 2009 [Permalink]
If you installed Asterisk through a package manager, be sure to also install the associated devel package so you can get the headers and all that good stuff.
Tom
on February 18, 2009
[Permalink]
For those of you out there that don't want to bother installing this great module have a look at http://pranklyspeaking.com/
Lets you place 3 min calls using high or low pitch
Polly the parrot on March 21, 2009 [Permalink]
Any chance to get this and the Phoneparrot updated to asterisk 1.6...?
Erichs
on March 26, 2009
[Permalink]
Compile fails on 64 bit systems.
mmx_optimized.cpp: In member function 'virtual void soundtouch::FIRFilterMMX::setCoefficients(const short int*, uint, uint)':
mmx_optimized.cpp:230: error: cast from 'short int*' to 'uint' loses precision
make[2]: *** [mmx_optimized.lo] Error 1
make[2]: Leaving directory `/usr/src/soundtouch-1.3.1-jart/source/SoundTouch'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/soundtouch-1.3.1-jart/source'
make: *** [all-recursive] Error 1
Chad
on April 7, 2009
[Permalink]
Why doesn't voice changer record the changed voice pitch. When I play back the recording my voice is normal.
Speppa on April 21, 2009 [Permalink]
I've the same problem of Mike.
I've installed all from source and when I try to install the voicechanger it give me this error http://paste.ubuntu.com/155458/
How can I uninstall it? I would like try to reinstall it again
thanks
David on May 2, 2009 [Permalink]
When I tried to install it, here's what it saying:
[trixbox1.localdomain src]# cd soundtouch-1.3.1-jart/
[trixbox1.localdomain soundtouch-1.3.1-jart]# ./configure --enable-integer-samples --prefix=/usr
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables
See `config.log' for more details.
[trixbox1.localdomain soundtouch-1.3.1-jart]#
any idea??
jay on May 23, 2009 [Permalink]
anyone know how i can record the call with the voice changer? when calls are recorded it does not record with voice changer.....any idea?
George on June 4, 2009 [Permalink]
"Tap tap tap, is this thing on...?"
any chances to get this ported to the new audiohooks-api (which was done exactly for this purpose, they even backlink here ;-))
http://www.russellbryant.net/blog/200...
jart
on June 8, 2009
[Permalink]
@George: 0.7 has audiohooks support. Enjoy
Post Comment