Uh oh!
There was an error while loading. Please reload this page.
Tools: Topology2: Add nocodec topology to test google-rtc-aec - #8266
Conversation
singalsu
commented
Sep 26, 2023
singalsu
commented
Sep 26, 2023
Note: I wasn't able to get a conventional AEC topology shape (*) to work so I changed the approach to be able to test module conversion for Google RTC audio processing. This topology is a minimalistic version for nocodec where AEC reference is captured from DAI as done with smart amplifiers (sof-mtl-max98357a-rt5682.tplg). Without smart amplifier the reference would be extracted in SOF with copier module. (*) |
ranj063
commented
Sep 26, 2023
@singalsu can we integrate the mock AEC into our regular nocodec tplg instead of this? That way we will be testing the 2 simultaneous capture DAIs configuration with our kernel |
I'd prefer to have this as well, this also goes to development directory only so it won't be relased. This is so simple that it can run in testbench by developers. Also this approach is simple to extend for other formats like s32 that is being added to be able to check them all somehow. |
lgirdwood
commented
Sep 27, 2023
If this is intended for testbench, we can name it or add commentary to state this. The topology looks OK to me but needs @ranj063 to approve. |
singalsu
commented
Oct 3, 2023
"46 successful and 1 failing checks", rebase and retry |
The first playback PCM is for AEC mic input via SSP0 LBM. The second playback PCM is for AEC reference via SSP2 LBM. The first capture PCM is the AEC output. The AEC (mockup) can be run and tested with the topology like this: $ aplay -Dhw:0,0 mic_clip.wav & $ aplay -Dhw:0,2 ref_clip.wav & $ arecord -Dhw:0,0 -f dat -d 10 output.wav With AEC mockup version output.wav is mix of microphone and reference. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
31b8158 to
40f69c5Comparelgirdwood
commented
Oct 4, 2023
@ranj063 good for you ? |
RanderWang
left a comment
There was a problem hiding this comment.
4ch AEC is supported now, do you plan to support it ?
singalsu
commented
Oct 9, 2023
I did this to test the module conversion but it should be possible to create variants. Is the 4ch such that reference is 2ch, AEC is 4ch mic and 4ch out? |
RanderWang
commented
Oct 10, 2023
we need 4ch ref. |
plbossart
commented
Oct 10, 2023
@RanderWang@singalsu can we clarify the comments above? The echo reference cannot have more channels than what is actually rendered? The number of channels in the echo reference is not correlated with the number of channels in the microphone input, and it's not clear how reference channels might be created out of thin air? |
singalsu
commented
Oct 11, 2023
Yep, 4ch reference would make sense only with four separate speakers channels, not even 2-way stereo with woofer & tweeter should normally require such. |
RanderWang
commented
Oct 11, 2023
Sure we only need 2ch ref. We support 4ch dmic 351fe7e so I mentioned it. |
kv2019i
commented
Oct 13, 2023
@ranj063 ping? Others, @RanderWang@singalsu is this ready to go or not? It's hard to tell when you press approve but have comments asking for changes. :) |
singalsu
commented
Oct 13, 2023
On my behalf ready yes, I could test my work with this with sufficient confidence that things work. The 4ch can be added later as incremental change or now if preferred. |
RanderWang
commented
Oct 16, 2023
sure, it is ready for me |
lgirdwood
commented
Oct 16, 2023
4 channels can be added incrementally. |

The first playback PCM is for AEC mic input via SSP0 LBM. The second playback PCM is for AEC reference via SSP2 LBM. The first capture PCM is the AEC output.
The AEC (mockup) can be run and tested with the topology like this:
$ aplay -Dhw:0,0 mic_clip.wav &
$ aplay -Dhw:0,2 ref_clip.wav &
$ arecord -Dhw:0,0 -f dat -d 10 output.wav
With AEC mockup version output.wav is mix of microphone and reference.