Hi Jeff, At 09:19 AM 8/29/02 -0500, Jeff Brower wrote: >Ulrich- > >If you can't do that, or you have processing ability only at the server, >then you >will need to subtract or selectively mix, as you describe. Of these two(selectively mix,subtract),which one is better?Any suggestions.. ? >You are approaching echo canceller / adaptive signal cancellation >techniques, which >are used to improve conferencing quality and provide a constant 2-way >sound situation >(full-duplex). We would have a central server,where conferencing is done... Does what I discussed in the previous mail refers to Echo Cancellation at the conference server? Or whether here Echo Cancellation here refers to something else? > But if you do that, you will need a DSP or other fast processor, and >cannot rely on the PC/sound card to do it. Yeah,we will use DSP. Thanks & regards, Prakash. >Jeff Brower >DSP sw/hw engineer >Signalogic > > >Ulrich Prakash wrote: > > > > Hi, > > > > Using the summing algorithm,I feel that we are not making MAXIMUM > > utilization of the mixed Output Channel,if I got it right. > > > > That is,though we take a + b + c = 1(for 3 inputs),we have to subtract one > > input with coefficient(i.e. same sample)before sending.Hence,b+c<1 and NOT > > equal to 1,to have maximum utilization. > > > > Let me explain the scenario more in detail: > > > > Consider there are 3 users(A,B,C) in a conference and there is ONE > > conference server which mixes the RTP packets. > > For 3 inputs,the mixed output, > > y = ax1+bx2+cx3, ------(1) > > and a+b+c=1. ---(2) > > > > However,we CANNOT send output 'y' as it is,to A,B and C. > > This is because,A should not hear his own voice,....likewise for B,C also. > > > > Hence we have to recalculate 3 outputs,like > > y1 = y - ax1 > > y2 = y - bx2 --------------(3) > > y3 = y - cx3 > > and then send y1(put into RTP packet) to A,y2 to B and y3 to C. > > > > If this is the case, > > y1 = y- ax1 = bx2+cx3 and here b+c <1. > > Hence here actually the outputs coefficients b+c<1,and NOT EQUAL to 1 and > > hence we are not making maximum utilization of the output channel. > > > > ALTERNATIVE solution: > > > > The alternative is doing a calculation like this: > > y1 = b1*x2 + c1*x3 , where b1 + c1 = 1, > > y2 = a2*x1 + c2*x3 , where a2 + c2 = 1, > > y3 = a3*x1 + b3*x2 , where a3 + b3 = 1, > > > > But this method will involve MORE COMPUTATION TIME due to more no. of > > multiplications and additions and finding co-efficients,if we mix more than > > 3 channels. > > > > So must one follow this ALTERNATIVE solution with more computations or the > > PREVIOUS one with lesser utilization of the channel? > > > > Also please let me know if there is some other way of dealing this > situation. > > > > Thanks in advance, > > Prakash. > > > > At 11:44 PM 8/21/02 -0500, Jeff Brower wrote: > > >Kun- > > > > > > > Thanks. Where can I find this kind of algorithms as mentioned below to > > > > dynamically conferencing? > > > > > >Not sure really. We've done some conferencing work before, we just > > >worried about the > > >2 channels with most energy at any one time. 3 channels worked Ok, too, > > >but beyond > > >that, I seem to recall there was not much to be gained -- if 4 people are > > >speaking at > > >once, well, what can you do...it's a mess "in real life", too. Also you > > >have to be > > >careful how you transition the weights -- you can't have a,b,c "jerk" to > > >different > > >values; use some type of lowpass/averaging filter on the weights, > > >something that > > >transitions smoothly, over about 50 to 100 msec. > > > > > >Jeff Brower > > >DSP sw/hw engineer > > >Signalogic > > > > > > > > > > > > > > Ahh, now you not mixing, but conferencing -- you should have said so > > > > > earlier. You > > > > > need some type of algorithm that dynamically looks for "most > energetic > > > > > voice" and > > > > > give that channel more weight. I've seen some conferencing algorithms > > > that > > > > > will look > > > > > for most 2 or 3 dominant channels and give them weight. > > > > > > > > Jeff Brower wrote: > > > > > > > > > > Kun- > > > > > > > > > > > I have a related problem: suppose I have 2 ulaw packet, what is the > > > > > > algorithm to mix them and create a new ulaw packet. When remote > > > > > > client receive and decode it, he can hear both audio. > > > > > > > > > > y[n] = U(a*u(x1[n]) + b*u(x2[n])) > > > > > > > > > > where > > > > > > > > > > U(x) = uLaw(x) (compress) > > > > > u(x) = inverse uLaw(x) (expand) > > > > > a + b = 1 > > > > > y[n] is packet data > > > > > > > > > > Jeff Brower > > > > > DSP sw/hw engineer > > > > > Signalogic > > > > > > > > > > > --- In audiodsp@y..., "VandeVoorde, Neil" <nvandevoorde@p...> > wrote: > > > > > > > Last year I went to SPIE's AeroSense conference and learned about > > > > > > > Independent Component Analysis and an application called the > > > > > > 'Cocktail > > > > > > > Party.' Basically, it's a method to assume that n multiple > signals > > > > > > are > > > > > > > recorded by n microphones. ICA is the method that allows the > > > > > > signals to be > > > > > > > separated into n discrete signals. Perhaps a look down this path > > > > > > may be > > > > > > > what you need... > > > > > > > > > > > > > > Regards,/s/neil > > > > > > > > > > > > > > Neil E. Van de Voorde, Ph.D. > > > > > > > Senior Scientist > > > > > > > Planning Systems Inc. > > > > > > > 228.689.8775 > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Jeff Brower [mailto:jbrower@s...] > > > > > > > Sent: Tuesday, August 20, 2002 7:21 AM > > > > > > > To: Ulrich Prakash > > > > > > > Cc: audiodsp@y... > > > > > > > Subject: Re: [audiodsp] Digital Mixer. > > > > > > > > > > > > > > Ulrich- > > > > > > > > > > > > > > > In that case,if I need to mix 'm' voice channels(in the form of > > > > > > RTP > > > > > > > > packets),then > > > > > > > > y(n) = a1*x1 + a2*x2 + ... am*xm > > > > > > > > > > > > > > > > = SIGMA ai*xi,where i = 1 to m (SIGMA - i don't have > > > > > > SIGMA > > > > > > > symbol > > > > > > > > in my mail editor) > > > > > > > > > > > > > > > > And SIGMA ai = 1,where i = 1 to m. > > > > > > > > In that case,if there are 10 input voice channels,then the > > > > > > amplitude of > > > > > > > > original sample x1 in output y will be around x1/10.Will > this not > > > > > > affect > > > > > > > > the fidelity of x1? > > > > > > > > > > > > > > Ahh, now you not mixing, but conferencing -- you should have > said so > > > > > > > earlier. You > > > > > > > need some type of algorithm that dynamically looks for "most > > > > > > energetic > > > > > > > voice" and > > > > > > > give that channel more weight. I've seen some conferencing > > > > > > algorithms that > > > > > > > will look > > > > > > > for most 2 or 3 dominant channels and give them weight. > > > > > > > > > > > > > > Clearly if you just constantly multiply every channel by 0.1 you > > > > > > will not > > > > > > > hear the > > > > > > > speaker -- he/she will be averaged with noise/silence. Not > everyone > > > > > > talks > > > > > > > at once, > > > > > > > right? Or at least you hope that your algorithm does not > cause them > > > > > > to do > > > > > > > that :-) > > > > > > > > > > > > > > -Jeff > > > > > > > > > > > > > > > > > > > > > > At 08:20 AM 8/19/02 -0500, Jeff Brower wrote: > > > > > > > > >Ulrich Prakash- > > > > > > > > > > > > > > > > > > > >Mix == add. Add your signals together, like this: > > > > > > > > > > > > > > > > > > > > > > y[n] = a*x1[n] + b*x2[n] > > > > > > > > > > > > > > > > > > > > > >Suggest that you maintain a + b = 1. > > > > > > > > > > > > > > > > > > > > [Prakash] > > > > > > > > > > Can I take a = 0.5 and b = 0.5,or is there any particular > > > > > > factor to > > > > > > > > > > evaluate the value of a and b? > > > > > > > > > > > > > > > > > > > > > Then put a dial on your MATLAB GUI that allows > > > > > > > > > > >the user to adjust between a and b. All the way to > left, a > > > > > > 1. All > > > > > > > the > > > > > > > > > > >way to > > > > > > > > > > >right, b = 1. > > > > > > > > > > > > > > > > > > > > [Prakash] > > > > > > > > > > From what you have said,I assume,if > > > > > > > > > > x1 = {4,2,6} and x2 = {8,10,12},and a=0.5,b=0.5then > > > > > > > > > > y = {2+4, 1+5, 3+6} = {6, 6, 9} > > > > > > > > > > Is that so straight-forward? > > > > > > > > > > > > > > > > > >Yep. > > > > > > > > > > > > > > > > > > >Will I hear both samples x1 and x2 from y output? > > > > > > > > > > > > > > > > > >Yep. > > > > > > > > > > > > > > > > > > > But I didn't understand what you mean to the LEFT and RIGHT > > > > > > here. > > > > > > > > > > > > > > > > > >When the user turns the dial. You can put a dial (knob) > on your > > > > > > GUI to > > > > > > > easily > > > > > > > > >demonstrate the effect; better than asking your users to enter > > > > > > values of > > > > > > > a > > > > > > > > >and b. > > > > > > > > > > > > > > > > > >Jeff Brower > > > > > > > > >DSP sw/hw engineer > > > > > > > > >Signalogic > > >_____________________________________ >Note: If you do a simple "reply" with your email client, only the author >of this message will receive your answer. You need to do a "reply all" if >you want your answer to be distributed to the entire group. > >_____________________________________ >About this discussion group: > >To Join: audiodsp-subscribe@audi... > >To Post: audiodsp@audi... > >To Leave: audiodsp-unsubscribe@audi... > >Archives: http://groups.yahoo.com/group/audiodsp > >Other DSP-Related Groups: http://www.dsprelated.com > > >">http://docs.yahoo.com/info/terms/
Digital Mixer.
Started by ●August 19, 2002
Reply by ●August 30, 20022002-08-30