How to implement a voice changer?
Asked Answered
C

6

15

I want to write a app which change the microphone input voice and make it like robot or some funny man's voice.It must support send changed voice to all application like IM Software or Game Client. Which technology should I pick up? Windows WaveForm Api? DirectX? audio driver?

Thank you very much!

Compendium answered 6/6, 2009 at 13:21 Comment(2)
Kevin - is this a commercial project?Federica
That depends.I'm not sure now.Compendium
T
9

There's an MSDN Coding4Fun article that explains how to create a voice changer that operates over Skype, in C# (.NET). The full source code is also hosted as a project on CodePlex. In addition, it should be fairly easy do something else with the audio (as opposed to streaming it via Skype), since the project is based around the NAudio framework, which contains a good level of abstraction. Anyway, it is a reasonably complete (and stable) example - definitely worth checking out in my opinion.

If you want/need to use C++ or some other language for development, then this project should at least give you some ideas about how to go about it. Still, if you can use .NET, then you're in luck I think.

Tricho answered 6/6, 2009 at 13:52 Comment(0)
P
4

Robot voice is often done with a ring modulator effect, mixing the voice with a sine wave - this is easier. Or use a vocoder effect, modulating the voice onto some other waveform, like rectangle - might be a bit more tricky. Go read up how the effects work, get a program with which you can check out how they sound (Audacity works for the ring modulator, finding and using a vocoder may be a bit harder). Then read how it's done or get a library which will do the processing for you.

Paynim answered 6/6, 2009 at 14:1 Comment(0)
N
3

You are looking to support VSTi or DXi plugins.
There are tons that also act as vocoders, even for free.
You just need to write the host application. Take a look here :)

Nave answered 6/6, 2009 at 13:53 Comment(1)
No problem. Accept the correct answer btw. I'd like to know who do you think is right.Nave
F
1

Now that's a neat idea, especially for a mobile app.

I'd probably start off-line by using a .wav file as input to get the effects working the way I wanted. You can use any high level language for this, but you probably want something that will map reasonably well into C/C++.

In terms of a production version, I'd go native and do this in C or C++. You want something fast for real time audio processing & I like to avoid dependencies on things like .net for distribution. (Not that I have anything against .net, it's great for servers and distribution within a company but I'm not so keen on having it as a dependency for shrink wrap software.)

Windows DirectShow would be a tempting option - you could do some interesting effects with multi-media as well if you had the voice morpher implemented as a direct show filter.

Federica answered 6/6, 2009 at 13:38 Comment(0)
H
1

What you're looking for is a vocoder. I don't know if any of the technologies listed above has a vocoder effect, but the best chance would be with DirectX.

Hentrich answered 6/6, 2009 at 13:40 Comment(0)
P
0

Try this sample app .I think its useful to you.Link

Paquito answered 30/3, 2015 at 8:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.