[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Linphone-developers] Linphone customisation
From: |
Simon Morlat |
Subject: |
RE: [Linphone-developers] Linphone customisation |
Date: |
Fri, 11 Dec 2009 09:39:05 +0100 |
Hi Billy,
Oh I realize I confused VAD with AGC.
In MSVolume there is support for gain control, automatic gain control,
noise suppression and automatic echo mute (refered as EA, echo "avoider"
which is not a good terminology).
The way the echo mute algorithm works is quite simple: it consists in
decreasing the mic gain when there are things played to the speaker.
It works by coupling the 2 MSVolume (one in the inbound path, other in
outbound). The coupling is done with SET_PEER.
The muting occurs when speaker energy exceeds EA_THRESHOLD. And there is
a kind of smoothing controlled by EA_SPEED, when transitionning from
echo muted to normal.
There is a VAD implementation in speex, but it has to be used somewhere
in MSVolume or outside in a new MSVad filter.
The MSConf filter (for audio mixing) has builtin VAD inside but it may
not be what you want.
Simon
Le lundi 07 décembre 2009 à 12:35 +0000, M Walton a écrit :
> Hi Simon,
>
> Many thanks for your help so far, my soundcard plugin is now working and
> looking good.
>
> You mentioned that you had the beginnings of VAD code in the msvolume.c, but
> it is not yet complete in the fact that it doesnt do anything with its
> results...
>
> I have been looking at this source, and i am a little confused as to what
> functions do what in the setup, could you confirm if im on the right tracks?
>
> MS_VOLUME_GET // Log volume of current packet
> MS_VOLUME_GET_LINEAR // Linear volume of current packet
> MS_VOLUME_SET_GAIN // Increases/Decreases the volume of the current packet?
> MS_VOLUME_GET_EA_STATE //Removes any acoustice echo from the
> computation?
> MS_VOLUME_SET_PEER
> MS_VOLUME_SET_EA_THRESHOLD //VAD Threshold
> MS_VOLUME_SET_EA_SPEED //VAD Speed
> MS_VOLUME_SET_EA_FORCE //Amplitude needed to becom of interest to
> the VAD algorithm?
>
> My oher option is to explore a simple power threshold technique, but by
> looking at the code in msvolume, i think its using a similar equation?
>
> Kindest regards
>
> Billy
>
> -----Original Message-----
> From: Simon Morlat [mailto:address@hidden
> Sent: 30 November 2009 2:37 PM
> To: M Walton
> Cc: address@hidden
> Subject: Re: [Linphone-developers] Linphone customisation
>
> Hi Billy,
>
> I think you need to implement a soundcard plugin in mediastreamer2; take
> example over mediastreamer2/src/alsa.c or mediastreamer2/src/winsnd2.c
> Basically this consists in implementing 2 MSFilter, one for reading from
> your special soundcard, one for writing to it, and one MSSndCard object
> representing your soundcard, that will be responsible for creating the
> MSFilter when asked.
> Then it should work without any modification outside.
> I recommend this method over the other one of using wav files to
> communicate with the pseudo-soundcard.
>
> For VAD, in 3.1.2 there is a start of VAD code in
> mediastreamer2/src/msvolume.c actually based on speex VAD. However it is
> not finished (notification of the application is not implemented), and
> untested.
> Hope this helps,
>
> Simon
>
>
> Le vendredi 27 novembre 2009 à 10:13 +0000, M Walton a écrit :
> > Hello everybody,
> >
> >
> >
> > My name is Billy and i have just joined this list - sorry for a long
> > first post!. I have been given a project which could involve using
> > the functionality of Linphone, and i was hoping somebody may have the
> > time to give me a few pointers to help me get started.
> >
> >
> >
> > My project involves interfacing some already built audio hardware to a
> > SIP Client type interface. It is based on a Blackfin platform running
> > a uClinux Dist. No video needed, just audio. The other hardware has
> > an ethernet connection (local and dedicated, not via internet so
> > streaming is easier) and expects an ADPCM stream over UDP, as well as
> > sending the same back.
> >
> > I have identified 3 areas which i will need to make modifications:
> >
> >
> >
> > 1)There is no soundcard on the hardware, i will need to catch the PCM
> > output from Linphone and convert it using a library i have written
> > before which will stream it onto the local LAN. I will also have to
> > pipe the return speech stream back into Linphone in a similar way.
> >
> >
> >
> > 2)I will have to add some signalling between Linphone and the current
> > hardware to setup/tear down the calls.
> >
> >
> >
> > 3)I need to somehow provide a VAD flag so i can identify if the ADPCM
> > block just converted actually has something of interest in (as the
> > current audio hardware is simplex).
> >
> >
> >
> > I have LinPhone (V3.0) compiled and running on Blackfin uClinux
> > 2009R1. I think i will simply modify the LinphoneC app to achieve the
> > signalling part.
> >
> >
> >
> > To do the custom conversions into framed ADPCM, is it best to write a
> > new filter to work with the MediaStreamer? - or somehow get linphone
> > to pipe the PCM data in and out of files which are shared with a
> > separate conversion application? or maybe use a Pipe? any ideas here
> > welcome.
> >
> >
> >
> > As for the VAD, well that seems the hardest at the moment, i guess it
> > should be implemented with the ADPCM conversion routines, and i am
> > looking at the Speex source and wondering at the moment!
> >
> >
> >
> > So if anyone could suggest a pointer or two on how to best get started
> > customising with the Linphone source id be greatly appreciative.
> >
> >
> >
> > Many thanks
> >
> > Billy
> >
> >
> >
> >
> >
> > Billy Walton
> >
> > Development Engineer
> >
> > Lismore Instruments Ltd
> >
> > ----------------------------------
> >
> > Unit 2 Tristar Centre
> >
> > Star Road Industrial Estate
> >
> > Star Road
> >
> > Horsham
> >
> > RH13 8RA
> >
> >
> >
> > [T] 01403 713121
> >
> > [E] address@hidden
> >
> > [W] www.Intercall.co.uk
> >
> > ----------------------------------
> >
> >
> >
> >
> > _______________________________________________
> > Linphone-developers mailing list
> > address@hidden
> > http://lists.nongnu.org/mailman/listinfo/linphone-developers
>
>
- RE: [Linphone-developers] Linphone customisation, (continued)
- RE: [Linphone-developers] Linphone customisation, Simon Morlat, 2009/12/01
- RE: [Linphone-developers] Linphone customisation, M Walton, 2009/12/03
- RE: [Linphone-developers] Linphone customisation, Simon Morlat, 2009/12/03
- RE: [Linphone-developers] Linphone customisation, M Walton, 2009/12/03
- RE: [Linphone-developers] Linphone customisation, Simon Morlat, 2009/12/03
- RE: [Linphone-developers] Linphone customisation, M Walton, 2009/12/03
- RE: [Linphone-developers] Sockets inside a plugin, M Walton, 2009/12/03
- RE: [Linphone-developers] Sockets inside a plugin, Simon Morlat, 2009/12/04
RE: [Linphone-developers] Linphone customisation, M Walton, 2009/12/03
RE: [Linphone-developers] Linphone customisation, M Walton, 2009/12/07
- RE: [Linphone-developers] Linphone customisation,
Simon Morlat <=