savant

Asterisk Real Time Pitch Changer

28 posts in this topic

[url="http://www.lobstertech.com/voicechanger/"]http://www.lobstertech.com/voicechanger/[/url]

This works with Asterisk 1.2 . His walkthrough has the pitch shifted to -6, although my testing shows anything lower than -3 is unintelligible.

Here's the wiki link, with a bit more clarity on syntax.

[url="http://www.voip-info.org/wiki/view/Asterisk+Realtime+Voice+Pitch+Changer"]http://www.voip-info.org/wiki/view/Asteris...e+Pitch+Changer[/url]

My settings are as follows:

[vocoder]
exten => _81NXXNXXXXXX,1,Answer
exten => _81NXXNXXXXXX,n,VoiceChangeDial(IAX2/trunk/${EXTEN:1}|-3.0|20|hr)

I dial 8+1+NPA-NXX-XXXX and voila! I'm making ransom demands. Edited by stonersavant

Share this post


Link to post
Share on other sites
this would be a great greatcalling.com feature, i.e. 66# or something, *WINK WINK* JOHN are you reading? :D

Share this post


Link to post
Share on other sites
[quote name='lucky225' date='Nov 21 2005, 12:15 AM']this would be a great greatcalling.com feature, i.e. 66# or something, *WINK WINK* JOHN are you reading? :D
[right][snapback]153982[/snapback][/right]
[/quote]

Ratchet, I bet you could ninjacode up something real fast... make an agi that automatically alters the pitch based on pressing # and *, or perhaps a toggle for on/off.

in fact, I'll paypal someone beer money as a bounty to get this done.

Any takers?

Share this post


Link to post
Share on other sites
Asterisk = owning everything

Next on the list:

Voice encryption/scrambling over asterisk

any takers?

Share this post


Link to post
Share on other sites
I'm having some trouble patching asterisk. Here's the error I'm getting:

[quote]debian:/usr/src/asterisk# patch -p1 <../asterisk-1.2.0-voicechanger-0.2.patch
patching file apps/app_voicechanger.c
patching file apps/Makefile
Hunk #1 FAILED at 29.
Hunk #2 succeeded at 70 with fuzz 2 (offset -24 lines).
1 out of 2 hunks FAILED -- saving rejects to file apps/Makefile.rej[/quote]
I tried finishing the process anyway and this is what I get when I dial the context:
[quote][Nov 22 18:29:06 WARNING[6726]: pbx.c:1294 pbx_extension_helper: No application 'VoiceChangeDial' for extension (default, 318005558355, 1)[/quote]
I expected this to happen since the patch was never applied. I'm using asterisk 1.2 stable on Debian. Does anybody know what might be wrong?

Share this post


Link to post
Share on other sites
What exact source are you using? Here are the steps I took...

I had to backup my configs and agis and then completely wipe out my old install for it to play nicely. Edited by stonersavant

Share this post


Link to post
Share on other sites
I'm using Asterisk 1.2.0 source which I downloaded from the Digium website yesterday. I was previously using Asterisk 1.0, and this voice changer was my excuse to upgrade.

I had to delete the /var/lib/asterisk folder because I got some errors during the install process. For some reason, there was a problem overwriting my sound files. I did not delete /etc/asterisk because I figured that wouldn't be touched.

Share this post


Link to post
Share on other sites
[quote name='stonersavant' date='Nov 22 2005, 03:39 AM']in fact, I'll paypal someone beer money as a bounty to get this done.

Any takers?
[right][snapback]154296[/snapback][/right]
[/quote]Hi, I wrote the voice changer.

The feature you requested has already been implemented, it will be released in 0.3 within a week or so.

Do my contributors and I still get the beer bounty?

Jman, I believe the hunk that is failing is the part where it adds app_voicechanger.so to the APPS list in apps/Makefile. You can do that manually and it should hopefully work... The patch is REALLY simple. Edited by jart

Share this post


Link to post
Share on other sites
[quote name='jart' date='Nov 23 2005, 02:05 PM'][quote name='stonersavant' date='Nov 22 2005, 03:39 AM']in fact, I'll paypal someone beer money as a bounty to get this done.

Any takers?
[right][snapback]154296[/snapback][/right]
[/quote]Hi, I wrote the voice changer.

The feature you requested has already been implemented, it will be released in 0.3 within a week or so.

Do my contributors and I still get the beer bounty?

Jman, I believe the hunk that is failing is the part where it adds app_voicechanger.so to the APPS list in apps/Makefile. You can do that manually and it should hopefully work... The patch is REALLY simple.
[right][snapback]154636[/snapback][/right]
[/quote]

It will toggle the modulation in real time inside of a call? Shit yeah, you'll get beer money!

How long have you been working on this? Have you done anything with the people looking to implement a "lie detector" based on vocal stress levels?

What would be REALLY cool is if you could invert the audio frequencies, so only someone with a similar setup could hear the sound correctly.

Share this post


Link to post
Share on other sites
[quote name='stonersavant' date='Nov 23 2005, 06:31 PM']It will toggle the modulation in real time inside of a call? Shit yeah, you'll get beer money!

How long have you been working on this? Have you done anything with the people looking to implement a "lie detector" based on vocal stress levels?

What would be REALLY cool is if you could invert the audio frequencies, so only someone with a similar setup could hear the sound correctly.
[right][snapback]154649[/snapback][/right]
[/quote]In the next day or so, I'm going to setup a beer fund on the website; after all, it's a lot cooler than a just asking for money. I'll probably split the money 50% me, and 25% for each of my two contributors. As a gentleman, you have my word that every dollar you donate will go towards boozehoundery.

I've been working around my demanding day job schedule the past couple weeks to make the voice changer. The motivation to create the voice changer originated from a prank I had been pulling on a friend. It's a long story I'll jot down on the site one of these days.

I plan to begin researching lie detection and other neat ideas once I get a bit more done with the voice changer. Do you think [url="http://books.google.com/books?hl=en&id=o5QngEff8FUC&pg=PR9&lpg=PR9&dq=acoustics+of+crime&prev=http://books.google.com/books%3Fq%3Dacoustics%2Bof%2Bcrime&sig=e6A8Dxxa-TQc9YKmsWaadoKDf44"]The Acoustics of Crime: The New Science of Forensic Phonetics[/url] would be a good place to start? I just hope it won't be too far over my head.

As for inverting frequencies, do you mean having a reverse effect to change someone's voice to normal? Claude and I have been thinking about creating a res module for asterisk that would allow you to enter a command to the CLI to manipulate voice on an existing channel. If you got a phone call from someone using the voice changer, that would allow you to go in CLI and revert their voice, assuming that they're not using the random distortion feature I plan to implement. Right now it's more on the low priority end due to a couple factors:

- It will be impossible to install a voice changer on a voip bridged channel
- It will be difficult; and I'm not sure how to do it without hacking the * core

Share this post


Link to post
Share on other sites
I tried downloading asterisk again, and this time the patch worked right off the bat. I'm not sure what was causing the problem earlier, but it works now. I've had some fun scaring my family members already.

Thanks!

Share this post


Link to post
Share on other sites
[quote name='JmanA9' date='Nov 24 2005, 09:24 AM']I tried downloading asterisk again, and this time the patch worked right off the bat.  I'm not sure what was causing the problem earlier, but it works now.  I've had some fun scaring my family members already.

Thanks!
[right][snapback]154760[/snapback][/right]
[/quote]

Damn, I don't know if it's the syntax that's changed in the 1.20 upgrade of Asterisk, or else if my declaration of a cid is globally overriding my asterisk setup, but now my cid _always_ says Unknown caller.

Basically I use a

exten => _81NXXNXXXXXX,1,Answer
exten => _81NXXNXXXXXX,2,Set(CallerID(6666666666))
exten => _81NXXNXXXXXX,n,VoiceChangeDial(IAX2/user:pass@trunk/${EXTEN:1}-3.0|hr)

Using voicepulse and/or sixtel, both still come up unknown.

Any ideas? (I say this knowing full well I'm likely just being a noob and doing something dumb...)

josh

Share this post


Link to post
Share on other sites
Try changing

exten => _81NXXNXXXXXX,2,[b]Set(CallerID[/b](6666666666))

to

exten => _81NXXNXXXXXX,2,[b]SetCallerID[/b](6666666666))

Notice that the parthentsis after Set is being removed. Also, be aware that if you have the fromuser field set in your sip.conf file, that will override any caller id that you try to send. Make sure that you can normally set caller id, and its not the voice changer screwing things up.

Share this post


Link to post
Share on other sites
ok, I've installed the latest patch for the pitch changer, and changed my extensions to look like this:

exten => _81NXXNXXXXXX,1,SetCIDNum(6666666666)
exten => _81NXXNXXXXXX,n,VoiceChangeDial(IAX2/user:pass@trunk/${EXTEN:1}|-3.0|20|hr)
exten => _81NXXNXXXXXX,n,Hangup();

However, when I call my IVR Auto Attendant from my mobile phone to forward through the voicechangedial, it places the call like normal but passes the CPN from my mobile phone as the cid for the call...

Hmmm...

Share this post


Link to post
Share on other sites
I don't have any time to look right now, but I think that you have to set your caller id to null, and then set it as what you'd like to send. I read something about this on voip-info.org, so try checking there.

This does seem a little weird.

Share this post


Link to post
Share on other sites
There's actually a bug with caller id forwarding in 0.2.0 of the voice changer, go to the site and grab the latest 0.2.1 patch.

The correct syntax for setting caller id in 1.2.0 is:

exten => 1,1,Set(CALLERID(number)=13334445555)
exten => 1,2,Set(CALLERID(name)=Citizen\ Kane)

or

exten => 1,2,Set(CALLERID(all)=12345678901)

Share this post


Link to post
Share on other sites
[quote name='jart' date='Nov 24 2005, 12:49 AM']As for inverting frequencies, do you mean having a reverse effect to change someone's voice to normal?[right][snapback]154710[/snapback][/right]
[/quote]

I believe that they're talking about frequency inversion voice scrambling. Essentially you mix the voice (multiply, not add) with a pilot frequency. This has the effect of inverting the component frequencies of an audio sample. If you're familiar with FFTs then imagine doing an FFT, reversing all of the elements of the FFT, and then performing an IFFT.

Several cheap cordless phones do this to keep out the casual scanner listener. With a tiny bit of code it can be defeated.

If my explanation sucks then check out [url="http://seussbeta.tripod.com/crypt.html"]an expanded explanation of simple voice scrambling[/url].

Share this post


Link to post
Share on other sites
[quote name='ntheory' date='Nov 26 2005, 12:03 PM']I believe that they're talking about frequency inversion voice scrambling.  Essentially you mix the voice (multiply, not add) with a pilot frequency.  This has the effect of inverting the component frequencies of an audio sample.  If you're familiar with FFTs then imagine doing an FFT, reversing all of the elements of the FFT, and then performing an IFFT.

Several cheap cordless phones do this to keep out the casual scanner listener.  With a tiny bit of code it can be defeated.

If my explanation sucks then check out [url="http://seussbeta.tripod.com/crypt.html"]an expanded explanation of simple voice scrambling[/url].
[right][snapback]155164[/snapback][/right]
[/quote]


You are correct, sir. Incidently, jart - do you have a link to the .2.1 patch? I only see .2.0.

Share this post


Link to post
Share on other sites
Despite the fact that the patch says 0.2, it is actually 0.2.1. I was too lazy to update the filename.

Wow, voice scrambling is cool! As soon as we get CDR logging in VoiceChangeDial, I will write ScrambleDial. Thanks so much for that link. Any other cool phreaking stuff you guys have up your sleaves that I could write in to Asterisk?

Share this post


Link to post
Share on other sites
[quote name='jart' date='Nov 27 2005, 10:07 PM']Despite the fact that the patch says 0.2, it is actually 0.2.1.  I was too lazy to update the filename.

Wow, voice scrambling is cool!  As soon as we get CDR logging in VoiceChangeDial, I will write ScrambleDial.  Thanks so much for that link.  Any other cool phreaking stuff you guys have up your sleaves that I could write in to Asterisk?
[right][snapback]155504[/snapback][/right]
[/quote]

Adding the ability to set cid within the application might be cool.

Also, in addition to sending a dropped or raised pitch, would it be feasable to also send an overdubbed inverse signal? example, if I'm making a dial at -3.0, it would be cool to also have it do a +3.0, so that you've got 2 voices at varying pitches speaking the exact same line. Think the da Vinci virus voiceover in hackers. Would that be too resource intensive?

Share this post


Link to post
Share on other sites
[quote name='stonersavant' date='Nov 28 2005, 12:28 PM']Also, in addition to sending a dropped or raised pitch, would it be feasable to also send an overdubbed  inverse signal? example, if I'm making a dial at -3.0, it would be cool to also have it do a +3.0, so that you've got 2 voices at varying pitches speaking the exact same line. Think the da Vinci virus voiceover in hackers. Would that be too resource intensive?
[right][snapback]155570[/snapback][/right]
[/quote]

That will double the cost of the pitch conversion. I believe that mixing the two generated signals together will use almost no cpu. I will try this out and see what it sounds like.

Can anyone link me to more cool pages describing ways I can manipulate voice for your phreaking pleasure? ScrambleDial() is already in the works.

Share this post


Link to post
Share on other sites
[quote name='jart' date='Nov 29 2005, 10:42 PM']
Can anyone link me to more cool pages describing ways I can manipulate voice for your phreaking pleasure?  ScrambleDial() is already in the works.
[right][snapback]155959[/snapback][/right]
[/quote]

It's tricky to think of good links, but if you can think of a feature, we can probably track down some links for you.

Some crazy assed echo sure would be cool.

Share this post


Link to post
Share on other sites
[quote name='stonersavant' date='Nov 30 2005, 12:53 PM']Some crazy assed echo sure would be cool.
[right][snapback]156031[/snapback][/right]
[/quote]
Oh the irony...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now