[pulseaudio-discuss] Test and Evaluate Echo Cancellation in an Embedded Device
Caio
caiortp at gmail.com
Fri May 13 20:49:44 UTC 2016
Arun,
Your test works very well! tks!
When I listen the cancelled.wav The audio start very low and after the
voice is very very low and some times disapers, now it's time to fix the
mechanical part (speaker / mic) and mic volume.
The audio is cracking , but I think there's some problem in my
configuration (I will need help to fix it).
The log.
Jan 01 02:52:43 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Doing resync
Jan 01 02:52:43 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Playback after capture (-1638515), drop
sink 104884
Jan 01 02:52:43 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Playback too far ahead (146059), drop
source 9346
Jan 01 02:52:44 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Playback too far ahead (13025), drop source
832
Jan 01 02:52:45 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Playback too far ahead (10100), drop source
646
Jan 01 02:52:46 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Playback too far ahead (9965), drop source
636
Jan 01 02:52:47 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Playback too far ahead (10089), drop source
644
Jan 01 02:52:48 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Playback too far ahead (10024), drop source
640
Jan 01 02:52:49 colibri-imx6-jfl pulseaudio[1051]: E: [alsa-source-HiFi
wm8962-0] module-echo-cancel.c: Playback after capture (-34), drop sink 22
This variable PULSE_PROP="filter.want=echo-cancel" fixed the problem.
When I was testing just like I wrote I had problems with echo.
pactl load-module module-echo-cancel source_name=echosource
sink_name=echosink aec_method=webrtc sink_master=mastersink
source_master=mastersource
gst-launch-1.0 filesrc location=some-voice-file.wav ! wavparse !
pulsesink device="echosink" \
pulsesrc device="echosource" ! wavenc ! filesink
location=cancelled.wav
How I can configure webrtc or speex using enviroment vars (PULSE_PROP)?
Thank you very much!
Regards,
Caio Pereira
2016-05-12 0:47 GMT-03:00 Arun Raghavan <arun at arunraghavan.net>:
> On Thu, 12 May 2016, at 01:41 AM, Caio wrote:
> > Hello!
> >
> > I'm working with a embedded linux and I'm using gstreamer to talk with
> > other board (voice call).
> >
> > To test and evaluate my project I'm using the IMX6SABRE Dual Lite Board
> > (
> >
> http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-processors/i.mx-6-processors/i.mx6qp/sabre-board-for-smart-devices-reference-design-based-on-the-i.mx-6-series:RDIMX6SABREBRD
> > )
> >
> > have the pulseaudio , speex and webrtc installed in my oard, but with
> > my
> > tests I didn't have success with echo cancellation
> >
> > In my testbed I'm using two boards in different rooms, each board has the
> > same softwares, to test the voice call I'm using a script with gstreamer.
> >
> > There's some method to test and evaluate the echo cancellation in
> > embedded
> > environment? Someone has an advice?
> >
> > I'm loading the module-echo-cancel using this command
> >
> > pactl load-module module-echo-cancel source_name=echosource
> > sink_name=echosink aec_method=webrtc sink_master=mastersink
> > source_master=mastersource
> >
> > (I change the webrtc to speex in other tests)
> >
> > The Gstreamer Script (usage ./gstreamer-call.sh ip start)
> >
> > #!/bin/sh
> > IPDEST=$1
> >
> > case "$2" in
> > start)
> > echo "Starting gstlaunch"
> > gst-launch-1.0 -v \
> > pulsesrc device="echosource" \
> > ! alawenc ! rtppcmapay ! udpsink port=4000
> > host=$IPDEST
> > &
> > gst-launch-1.0 -v udpsrc
> >
> caps="application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA"
> > port=4000 ! \
> > rtppcmadepay ! alawdec ! audioconvert !
> > audioresample ! \
> > pulsesink device="echosink" \
> > &
>
> This script should work. Can you describe what is failing? And can you
> attach PA server logs as well?
>
> I usually test with something like:
>
> PULSE_PROP="filter.want=echo-cancel" \
> gst-launch-1.0 filesrc location=some-voice-file.wav ! wavparse !
> pulsesink \
> pulsesrc ! wavenc ! filesink
> location=cancelled.wav
>
> -- Arun
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>
--
----------------------------------------------
Caio Pereira
@caio_rtp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20160513/185c815b/attachment-0001.html>
More information about the pulseaudio-discuss
mailing list