Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Register Log in

Voice extraction from a song

Status
Not open for further replies.

munaza

Newbie level 4
Joined
Sep 14, 2011
Messages
7
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,335
hi

i m doing my thesis in "human voice extraction from a song "
the required otput of the project should be the human voice
and instruments should be subtracted or removed.
I tried to achieve this task in C# but didn't get clear results ;can any one help me in how to remove instruments from song. help in MATLAB is will also be
appreciated. thanks
 

BradtheRad

Super Moderator
Staff member
Joined
Apr 1, 2011
Messages
13,814
Helped
2,738
Reputation
5,473
Reaction score
2,648
Trophy points
1,393
Location
Minneapolis, Minnesota, USA
Activity points
103,109
I've never heard of this being done successfully.

There's a method to eliminate the vocals by taking the difference signal between L and R channel. You might see devices that do this advertised in magazines ('eliminate the vocals, record your own'). THis is also the method to simulate rear channels for surround sound. But it works only because the vocals are commonly located in the center, consisting of an identical waveform in each channel. What remains are only the unique signals present in the L and unique signals present in the R channel.

I've never heard of a way to combine, or invert, or subtract, or add channels in such a way as to isolate the center signal by itself (which is what you wish to do).

Other than that, you can try filtering out frequencies outside the range of the human voice.

The rest will not be easy. It will take heavy duty programming. The task is to neutralize waveforms superimposed on a human voice.

You might get partial success by recognizing and eliminating attack waveforms (piano, guitar, percussion).

Or by recognizing and eliminating sustained waveforms (brass, woodwind, string instruments).

The above process may be possible if only one instrument is accompanying the vocal. If many instruments are playing then the task may be impossible.
 

vimalkhanna

Full Member level 6
Joined
Aug 7, 2010
Messages
323
Helped
55
Reputation
110
Reaction score
53
Trophy points
1,308
Location
delhi
Activity points
3,238
There is a detailed study requirement of the spectrum of voice of the singer .The signals give the combination of all instruments with the singers input when the voice overrides in amplitudes .
The same signal frequency is now taken and put as the center ffreq. of the foster-seeley discriminator .The basic freq. and the changes give an integrated AM suppy signal.This signal is inverted and mixed with the original vocal music.
You will see a downright elimination of the fundamental voice vs music.
However , beware of the voice harmonics which will still be present .
There is another point .The averaging time constant of the FS Discriminator has to be peaked very sharply with Q ranging to >150 which is very tough .
This will demonstrate ,,,,but not solve your problems as coil "Qs "need be very high for sharp fundamental selection.
 

aka07

Member level 1
Joined
Mar 23, 2010
Messages
37
Helped
28
Reputation
56
Reaction score
20
Trophy points
1,288
Location
India
Activity points
1,503
You can try ICA algorithm . But for correlated voice of the singer and music instruments , the output will not be that good.
 

phongphanp

Full Member level 5
Joined
Mar 17, 2003
Messages
259
Helped
21
Reputation
44
Reaction score
18
Trophy points
1,298
Location
thailand
Activity points
1,259
You must take some sample of music instrument for train with NN or/and sampling the Voice. I'm think about how sound be produce by our pharynx, thing may accumulate the energy of sound. Small as you could imagination , the quality or performance can expected.
 

trav1s

Advanced Member level 4
Joined
Nov 11, 2010
Messages
100
Helped
29
Reputation
60
Reaction score
28
Trophy points
1,318
Location
Japan
Activity points
2,025
Yes, I agree with phongphanp. Because of the complexity of the signal characteristics in a song, neural networks would be the easiest solution. You would have to extensively train your neural network on each instrument present in the recording, including the singers voice. The NN would then have to isolate the vocalist, while rejecting noises which are characteristic of the undesired instruments that it has learned.

One thing to note is that there are large variations on sound between one instrument used on different recordings. The effects, mixing and mastering have huge impacts on the sound of each instrument, and this can produce drastic differences between albums or even songs.

Getting computers to recognize and isolate important information as well as a human can is a big problem in artificial intelligence. If you can actually implement an intelligent system that works on a variety of source materials, you will probably change the world. But if you resort to a cheap trick like subtracting left and right channels, then your thesis will have zero novelty.
 

munaza

Newbie level 4
Joined
Sep 14, 2011
Messages
7
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,335
thanks for the help but i need to mention here that i m running out of time and to fulfill my thesis requirement it is necessary for me to complete it . thats why i would like to go towards an easier side.. so if u can help i will appriciate.. i need help either in C# or in MATLAB..thanks

---------- Post added at 10:49 ---------- Previous post was at 10:44 ----------

thanks BradthRad.. u r right but m not trying to completely remove music from voices but at first stage i want to remove any one or two instruments like piano,guitar or string instruments... if u can help me in this,then i will get a road to try furthur... thanks

---------- Post added at 10:52 ---------- Previous post was at 10:49 ----------

thanks vimalkhanna but i m not getting ur point .. i want to get voice as an output..

---------- Post added at 10:54 ---------- Previous post was at 10:52 ----------

thanks aka07..i have read about ICA .can u help me in how to code ICA in Matlab..

---------- Post added at 10:55 ---------- Previous post was at 10:54 ----------

thanks for reply
 

BradtheRad

Super Moderator
Staff member
Joined
Apr 1, 2011
Messages
13,814
Helped
2,738
Reputation
5,473
Reaction score
2,648
Trophy points
1,393
Location
Minneapolis, Minnesota, USA
Activity points
103,109
To extract instruments, about the best you can do is to filter out one note at a time. This should work with 'pure' sounds, as comes from a flute or piano.

You examine one second of music in a spectrum display. See what other pitches are sounding, besides the voice.

You're looking particular for the fundamental frequencies, meaning the lowest frequency of a note that instrument is making. It usually is the strongest portion of the volume coming from most any instrument.

The fundamental is a sine wave. (As well as all the overtones are sine waves.) It lasts as long as a note lasts. Maybe several seconds, maybe a tenth of a second.

If you can identify a fundamental frequency, then you can filter it out (in that segment of music).

To filter one frequency at a time will be tedious. If you are willing to go through this process, little by little, then you can remove just about all of that instrument.

And even if the instrument is not a 'pure' tone, just removing the fundamental will reduce its volume.

You might get by with a low pass filter, to remove an instrument in one operation. The instrument must be playing notes at a lower frequency than the voice is. Your filter must have a sharp cutoff slope.

-----------

What you'd like to do is automate the above process. If you can write the code to do it, then you may have created a new technique which will get some attention for you. Because I've never heard of it being done.
 
Last edited:

munaza

Newbie level 4
Joined
Sep 14, 2011
Messages
7
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,335
hi BradtheRad thanks for idea. i have tried applying low pass filter on wav file but i have got results as reduced volume.. can you write an example Matlab code for me to understand your point . i appriciate your idea..thanx
 

BradtheRad

Super Moderator
Staff member
Joined
Apr 1, 2011
Messages
13,814
Helped
2,738
Reputation
5,473
Reaction score
2,648
Trophy points
1,393
Location
Minneapolis, Minnesota, USA
Activity points
103,109
Sorry I have no experience with Matlab or digital filtering methods.

I use a free DSP program called Audacity. It has a frequency filter with a graphical interface.
I can push points on the envelope up or down
I can choose any range of frequencies.
I can tailor the curve to any steepness within +20dB or -20dB.
I can apply it to a small or large portion of the song.

Audacity doesn't have the fine resolution to delete single notes however. I don't think it could delete an octave's range of pitches. At least not so cleanly as to suit your project

There may be another program (for money) that lets you remove a range covering a few notes of a scale. It might even label what frequencies you are removing. Audacity does not have that capability.

It still adds up to a lot of work, even if there's a program that will let you do it.

Nevertheless, if you were to take 20 seconds worth of a flute and vocal duet, and painstakingly remove all the flute notes by the above process, you would end up with a fairly clean vocal part. That alone would be an accomplishment.

Anyone who hears the before and after comparison would say you earned an A plus.
 

munaza

Newbie level 4
Joined
Sep 14, 2011
Messages
7
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,335
hi BradtheRad thanks for guiding me now i want to know the steps in Audacity to filter wav file upto a frequency of 7K Hz not above that. thanks
 

aka07

Member level 1
Joined
Mar 23, 2010
Messages
37
Helped
28
Reputation
56
Reaction score
20
Trophy points
1,288
Location
India
Activity points
1,503
Coding ICA is a very big thing. I suggest you use some readymade ICA codes. You may google for FastICA, Jade ICA etc.
 

BradtheRad

Super Moderator
Staff member
Joined
Apr 1, 2011
Messages
13,814
Helped
2,738
Reputation
5,473
Reaction score
2,648
Trophy points
1,393
Location
Minneapolis, Minnesota, USA
Activity points
103,109

munaza

Newbie level 4
Joined
Sep 14, 2011
Messages
7
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,335
thanks... i wil need further help in this regard.. up to now i m thankful for your help
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top