<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-GB" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Still the same and with tsched presume this is what you mean<br>
<br>
</p>
<p class="MsoNormal">No /etc/asound.conf or .asoundrc just vanilla<br>
Set pa default sink source to correct card and all plays ok.<br>
When media is playing and EC kicks in recording is the same quiet ‘vocoded’ garble.<br>
<br>
<br>
</p>
<p class="MsoNormal">/etc/pulse/default.pa</p>
<p class="MsoNormal">### Automatically load driver modules depending on the hardware available</p>
<p class="MsoNormal">.ifexists module-udev-detect.so</p>
<p class="MsoNormal">load-module module-udev-detect tsched=0</p>
<p class="MsoNormal">.else</p>
<p class="MsoNormal">### Use the static hardware detection module (for systems that lack udev support)</p>
<p class="MsoNormal">load-module module-detect tsched=0</p>
<p class="MsoNormal">.endif</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">### Enable Echo/Noise-Cancellation</p>
<p class="MsoNormal">load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="analog_gain_control=0\ digital_gain_control=1\ agc_start_volume=85"  source_name=echoCancel_source sink_name=echoCancel_sink</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">set-default-source echoCancel_source</p>
<p class="MsoNormal">set-default-sink echoCancel_sink</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><br>
Picked the above purely as example<br>
I will clone pulseaudio and compile and run the test applications next.<br>
<br>
Journalctl is complaining and maybe but don’t think this is actually effecting EC<br>
<br>
May 22 18:32:10 raspberrypi systemd[594]: Started Sound Service.</p>
<p class="MsoNormal">May 22 18:32:10 raspberrypi systemd[594]: Reached target Default.</p>
<p class="MsoNormal">May 22 18:32:10 raspberrypi systemd[594]: Startup finished in 1.558s.</p>
<p class="MsoNormal">May 22 18:32:10 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Doing resync</p>
<p class="MsoNormal">May 22 18:32:10 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (16127), drop source 4128</p>
<p class="MsoNormal">May 22 18:32:24 raspberrypi systemd-timesyncd[281]: Synchronized to time server for the first time 195.219.205.9:123 (2.debian.pool.ntp.org).</p>
<p class="MsoNormal">May 22 18:32:28 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] alsa-source.c: ALSA woke us up to read new data from the device, but there was actually nothing to read.</p>
<p class="MsoNormal">May 22 18:32:28 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] alsa-source.c: Most likely this is a bug in the ALSA driver 'snd_usb_audio'. Please report this issue to the ALSA developers.</p>
<p class="MsoNormal">May 22 18:32:28 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] alsa-source.c: We were woken up with POLLIN set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.</p>
<p class="MsoNormal">May 22 18:32:31 raspberrypi systemd[1]: systemd-hostnamed.service: Succeeded.</p>
<p class="MsoNormal">May 22 18:34:12 raspberrypi pulseaudio[607]: E: [alsa-sink-USB Audio] alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write.</p>
<p class="MsoNormal">May 22 18:34:12 raspberrypi pulseaudio[607]: E: [alsa-sink-USB Audio] alsa-sink.c: Most likely this is a bug in the ALSA driver 'snd_usb_audio'. Please report this issue to the ALSA developers.</p>
<p class="MsoNormal">May 22 18:34:12 raspberrypi pulseaudio[607]: E: [alsa-sink-USB Audio] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.</p>
<p class="MsoNormal">May 22 18:35:45 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Doing resync</p>
<p class="MsoNormal">May 22 18:35:45 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (13270), drop source 3392</p>
<p class="MsoNormal">May 22 18:36:30 raspberrypi sshd[651]: Accepted password for pi from 192.168.1.8 port 62656 ssh2</p>
<p class="MsoNormal">May 22 18:36:30 raspberrypi sshd[651]: pam_unix(sshd:session): session opened for user pi by (uid=0)</p>
<p class="MsoNormal">May 22 18:36:30 raspberrypi systemd-logind[356]: New session c2 of user pi.</p>
<p class="MsoNormal">May 22 18:36:30 raspberrypi systemd[1]: Started Session c2 of user pi.</p>
<p class="MsoNormal">May 22 18:36:42 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Doing resync</p>
<p class="MsoNormal">May 22 18:36:42 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (8087), drop source 2064</p>
<p class="MsoNormal">May 22 18:36:48 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Doing resync</p>
<p class="MsoNormal">May 22 18:36:48 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (109101), drop source 27928</p>
<p class="MsoNormal">May 22 18:36:48 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Doing resync</p>
<p class="MsoNormal">May 22 18:36:48 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (30637), drop source 7840</p>
<p class="MsoNormal">May 22 18:36:49 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (87442), drop source 22384</p>
<p class="MsoNormal">May 22 18:36:50 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (6950), drop source 1776</p>
<p class="MsoNormal">May 22 18:36:51 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9035), drop source 2312</p>
<p class="MsoNormal">May 22 18:36:52 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9685), drop source 2472</p>
<p class="MsoNormal">May 22 18:36:53 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10327), drop source 2640</p>
<p class="MsoNormal">May 22 18:36:54 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9473), drop source 2424</p>
<p class="MsoNormal">May 22 18:36:55 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10344), drop source 2648</p>
<p class="MsoNormal">May 22 18:36:56 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9592), drop source 2448</p>
<p class="MsoNormal">May 22 18:36:57 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10263), drop source 2624</p>
<p class="MsoNormal">May 22 18:36:58 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9805), drop source 2504</p>
<p class="MsoNormal">May 22 18:36:59 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10170), drop source 2600</p>
<p class="MsoNormal">May 22 18:37:00 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9643), drop source 2464</p>
<p class="MsoNormal">May 22 18:37:01 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10247), drop source 2616</p>
<p class="MsoNormal">May 22 18:37:02 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10158), drop source 2600</p>
<p class="MsoNormal">May 22 18:37:03 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9979), drop source 2552</p>
<p class="MsoNormal">May 22 18:37:04 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9802), drop source 2504</p>
<p class="MsoNormal">May 22 18:37:05 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9994), drop source 2552</p>
<p class="MsoNormal">May 22 18:37:06 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10367), drop source 2648</p>
<p class="MsoNormal">May 22 18:37:07 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9774), drop source 2496</p>
<p class="MsoNormal">May 22 18:37:08 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9974), drop source 2552</p>
<p class="MsoNormal">May 22 18:37:09 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10064), drop source 2576</p>
<p class="MsoNormal">May 22 18:37:10 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10102), drop source 2584</p>
<p class="MsoNormal">May 22 18:37:11 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9675), drop source 2472</p>
<p class="MsoNormal">May 22 18:37:12 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (9948), drop source 2544</p>
<p class="MsoNormal">May 22 18:37:13 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10421), drop source 2664</p>
<p class="MsoNormal">May 22 18:37:14 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback too far ahead (10022), drop source 2560</p>
<p class="MsoNormal">May 22 18:37:15 raspberrypi pulseaudio[607]: E: [alsa-source-USB Audio] module-echo-cancel.c: Playback after capture (-390), drop sink 176</p>
<p class="MsoNormal">May 22 18:47:28 raspberrypi systemd[1]: Starting Cleanup of Temporary Directories...<br>
<br>
<br>
Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="border:none;padding:0cm"><b>From: </b><a href="mailto:pulseaudio-discuss-request@lists.freedesktop.org">pulseaudio-discuss-request@lists.freedesktop.org</a><br>
<b>Sent: </b>22 May 2020 13:00<br>
<b>To: </b><a href="mailto:pulseaudio-discuss@lists.freedesktop.org">pulseaudio-discuss@lists.freedesktop.org</a><br>
<b>Subject: </b>pulseaudio-discuss Digest, Vol 109, Issue 14</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Send pulseaudio-discuss mailing list submissions to<br>
        pulseaudio-discuss@lists.freedesktop.org<br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss">
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss</a><br>
or, via email, send a message with subject or body 'help' to<br>
        pulseaudio-discuss-request@lists.freedesktop.org<br>
<br>
You can reach the person managing the list at<br>
        pulseaudio-discuss-owner@lists.freedesktop.org<br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of pulseaudio-discuss digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Re: Webrtc AEC Raspberry Pi weird effects. (Arun Raghavan)<br>
   2. Re: pa echo-cancel module and alsa (Monkey Bizness)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Thu, 21 May 2020 16:10:59 -0400<br>
From: "Arun Raghavan" <arun@arunraghavan.net><br>
To: "Stuart Naylor" <stuartiannaylor@outlook.com>, "PulseAudio<br>
        Discussion" <pulseaudio-discuss@lists.freedesktop.org><br>
Subject: Re: [pulseaudio-discuss] Webrtc AEC Raspberry Pi weird<br>
        effects.<br>
Message-ID: <1ed787dc-a446-4f9f-8843-85f760640381@www.fastmail.com><br>
Content-Type: text/plain;charset=utf-8<br>
<br>
Hi Stuart,<br>
<br>
On Wed, 13 May 2020, at 10:33 AM, Stuart Naylor wrote:<br>
>  <br>
> I will post the recordings.<br>
> <br>
>  EC<br>
> <a href="https://drive.google.com/file/d/13WCq9Bs-cW-cJsGFwU9s6DZ2UNLPXyMU/view?usp=sharing">
https://drive.google.com/file/d/13WCq9Bs-cW-cJsGFwU9s6DZ2UNLPXyMU/view?usp=sharing</a><br>
> <br>
> <br>
> No-EC<br>
> <br>
> <a href="https://drive.google.com/file/d/1HH5klDS_Y5Lcmsuc2EWsBO517V4dwLV0/view?usp=sharing">
https://drive.google.com/file/d/1HH5klDS_Y5Lcmsuc2EWsBO517V4dwLV0/view?usp=sharing</a><br>
<br>
So I take it this is with webrtc?<br>
<br>
What you're <br>
<br>
>  If I run speexdsp AEC with exact same setup but via alsa with <br>
> pulseaudio removed then the results are quite good.<br>
>  The speaker is only 12? from the mic and 12? from me and quite loud as <br>
> wondering what upstairs thinks.<br>
>  But anyway the results are pretty good.<br>
> <br>
>  EC<br>
> <br>
> <a href="https://drive.google.com/file/d/1ohO0YaO3CEwrXWwcj8qDbUpWuQo5sv2T/view?usp=sharing">
https://drive.google.com/file/d/1ohO0YaO3CEwrXWwcj8qDbUpWuQo5sv2T/view?usp=sharing</a><br>
> <br>
> <br>
> No-EC<br>
> <br>
> <a href="https://drive.google.com/file/d/12qNv6O9o-ttFoWE9tytqXdbAKCkPT6NW/view?usp=sharing">
https://drive.google.com/file/d/12qNv6O9o-ttFoWE9tytqXdbAKCkPT6NW/view?usp=sharing</a><br>
<br>
Ah, that is quite good!<br>
<br>
> Journalctl is giving the usual but this is a single usb soundcard with <br>
> single clock for capture/playback.<br>
> <br>
>  May 13 14:14:30 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Doing resync<br>
> <br>
>  May 13 14:14:30 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (37856), drop<br>
> <br>
>  May 13 14:14:49 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Doing resync<br>
> <br>
>  May 13 14:14:49 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (131103), dro<br>
> <br>
>  May 13 14:14:49 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Doing resync<br>
> <br>
>  May 13 14:14:49 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (75977), drop<br>
> <br>
>  May 13 14:14:50 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (62480), drop<br>
> <br>
>  May 13 14:14:51 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (13404), drop<br>
> <br>
>  May 13 14:14:52 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (10231), drop<br>
> <br>
>  May 13 14:14:53 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (9131), drop<br>
> <br>
>  May 13 14:14:54 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (9136), drop<br>
> <br>
>  May 13 14:14:55 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (9651), drop<br>
> <br>
>  May 13 14:14:56 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (9915), drop<br>
> <br>
>  May 13 14:14:57 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (9814), drop<br>
> <br>
>  May 13 14:14:58 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback too far ahead (10011), drop<br>
> <br>
>  May 13 14:15:00 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback after capture (-580), drop<br>
> <br>
>  May 13 14:15:03 raspberrypi pulseaudio[608]: E: [alsa-source-USB <br>
> Audio] module-echo-cancel.c: Playback after capture (-158), drop<br>
> <br>
>  May 13 14:15:20 raspberrypi pulseaudio[608]: E: [alsa-sink-USB Audio] <br>
> alsa-sink.c: ALSA woke us up to write new data to the device<br>
> <br>
>  May 13 14:15:20 raspberrypi pulseaudio[608]: E: [alsa-sink-USB Audio] <br>
> alsa-sink.c: Most likely this is a bug in the ALSA driver 's<br>
> <br>
>  May 13 14:15:20 raspberrypi pulseaudio[608]: E: [alsa-sink-USB Audio] <br>
> alsa-sink.c: We were woken up with POLLOUT set -- however a<br>
<br>
The source dropped messages are from us trying to do drift compensation and matching the samples we believe correspond to each other given we know what the playback and capture latencies are.<br>
<br>
Now if your device driver does not report the ALSA pointer correctly, this can throw the latency reports, and thus the AEC off. In your ALSA-only test, you are likely not exercising the ALSA API in the same way as PulseAudio does (for power saving etc.).<br>
<br>
Do you see the same problem if you load the ALSA modules with tsched=off?<br>
<br>
> I am sure there is something not quite write with the <br>
> webrtc_audio_processing when it comes to arm Linux maybe even just the <br>
> Pi which here is a Pi4.<br>
>  Anyone any idea why the first EC with pulseaudio is so bad whilst even <br>
> the supposedly weaker speexdsp aec actually makes quite a good job with <br>
> exactly same hardware and setup?<br>
<br>
I think one thing to do is minimise the dropped source/sink buffers, to get some steady performance.<br>
<br>
Another way to experiment is to load module-echo-cancel with save_aec=true. This will dump the playback, capture, and cancelled data to /tmp.<br>
<br>
You can then run echo-cancel-test (you'll need to have a PA build handy), which allows you to rerun on the same input with different AEC engines/parameters. However, all this only makes sense if you can get a steady state with buffers not being dropped. Each
 dropped buffer is going to introduce a discontinuity/non-linearity that throws the AEC engine for a toss for a short while at least.<br>
<br>
Hope this helps,<br>
Arun<br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Fri, 22 May 2020 09:43:13 +0200<br>
From: Monkey Bizness <monkey@infra-monkey.com><br>
To: pulseaudio-discuss@lists.freedesktop.org<br>
Subject: Re: [pulseaudio-discuss] pa echo-cancel module and alsa<br>
Message-ID:<br>
        <e99842240c0cabc8700485320f9f1c53d649c423.camel@infra-monkey.com><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
So it appears my alsa configuration was messing things up a bit I<br>
think, and as I have only one app using audio, there is only little<br>
interest in not using the default pulse config...A parallel thread<br>
regarding AEC points out to time scheduling issues on raspberry pi.<br>
So I could make AEC work by:  - removing my alsa config and just<br>
keeping the default pulse device - loading module-alsa-sink with<br>
tsched=off - defining my echo-cancel  sink and source as default<br>
Now the autoload creates an additional sink for the alsa device<br>
alsa_output.platform-bcm2835_audio.stereo-fallback and sets it by as<br>
the default sink, overwritting the default sink i defined in the<br>
configuration.<br>
How can i force pulse autoload to either not add that input device, or<br>
not set it as default sink?<br>
thanksMonkey<br>
On Tue, 2020-05-19 at 13:00 +0200, Monkey Bizness wrote:<br>
> Hi,<br>
> <br>
> I'm hoping someone here can help me figure out how to setup my<br>
> configuration properly.<br>
> <br>
> I'm trying to output sound through the echo-cancel module but by<br>
> going through the alsa device. Unfortunately, the application doesn't<br>
> support pulseaudio for the playback.<br>
> <br>
> configuration:<br>
> raspberry pi 4ubuntu 20.04<br>
> ffmpeg : 4.2.2-1ubuntu1<br>
> pulseaudio : 13.99.1-1ubuntu3.2<br>
> <br>
> <br>
> <br>
> <br>
> In order to do that, i've defined the echo-cancel configuration in<br>
> /etc/pulse/default.pa:load-module module-echo-cancel<br>
> use_master_format=1 aec_method=webrtc<br>
> aec_args="analog_gain_control=0\ digital_gain_control=1"<br>
> source_name="echoCancel_source" sink_name="echoCancel_sink" <br>
> <br>
> <br>
> It works. I can test it with :<br>
> ffmpeg -i recording.wav -f pulse -device echoCancel_sink test<br>
> <br>
> <br>
> <br>
> Now in order to playback through alsa, i've defined a pcm device:<br>
> cat /etc/alsa/conf.d/90-echocancel.conf  <br>
> pcm.pulse-echo-cancel {<br>
> <br>
>         type pulse<br>
> <br>
>         device "echoCancel_sink"<br>
> <br>
> }<br>
> <br>
> <br>
> <br>
> ctl.pulse-echo-cancel {<br>
> <br>
>         type pulse<br>
> <br>
>         sink "echoCancel_sink"<br>
> <br>
> }<br>
> <br>
> <br>
> <br>
> <br>
> When I try this configuration with:<br>
> <br>
> ffmpeg -i recording.wav -f alsa pulse-echo-cancel<br>
> <br>
> <br>
> <br>
> Sound is scrambled and super slow.<br>
> <br>
> <br>
> Does anyone know how to make this configuration work?<br>
> Any pointer would be appreciated.<br>
> <br>
> <br>
> I feel I got the correct overall approach but i am missing something<br>
> about the rate convertion or specification.<br>
> <br>
> <br>
> Best regards<br>
> <br>
> <br>
> <br>
> _______________________________________________pulseaudio-discuss<br>
> mailing listpulseaudio-discuss@lists.freedesktop.org<br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss">https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss</a><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20200522/16f19af4/attachment-0001.htm">https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20200522/16f19af4/attachment-0001.htm</a>><br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
_______________________________________________<br>
pulseaudio-discuss mailing list<br>
pulseaudio-discuss@lists.freedesktop.org<br>
<a href="https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss">https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss</a><br>
<br>
<br>
------------------------------<br>
<br>
End of pulseaudio-discuss Digest, Vol 109, Issue 14<br>
***************************************************<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>