From b047d9ba4d47aabab013d10c8b9117d984c74198 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Thu, 21 May 2026 15:52:27 +0300 Subject: [PATCH 1/3] Audio: Selector: Add blob for stereo to double mono This patch adds build of blob downmix_stereo_to_mono.conf. It is useful for processing mono input for MFCC. The sum of left and right multiplied by 0.5 is passed to both left and right sink channels. The comment in blobs export is also updated to current path of the script. Signed-off-by: Seppo Ingalsuo --- src/audio/selector/tune/sof_selector_blobs.m | 13 +++++++++- .../micsel/downmix_stereo_to_doublemono.conf | 26 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tools/topology/topology2/include/components/micsel/downmix_stereo_to_doublemono.conf diff --git a/src/audio/selector/tune/sof_selector_blobs.m b/src/audio/selector/tune/sof_selector_blobs.m index 1b370d4030de..b2f70069ee0b 100644 --- a/src/audio/selector/tune/sof_selector_blobs.m +++ b/src/audio/selector/tune/sof_selector_blobs.m @@ -23,6 +23,7 @@ function sof_selector_blobs() IPC4_CHANNEL_CONFIG_STEREO = 1; IPC4_CHANNEL_CONFIG_QUATRO = 5; IPC4_CHANNEL_CONFIG_5_POINT_1 = 8; + IPC4_CHANNEL_CONFIG_DUAL_MONO = 9; IPC4_CHANNEL_CONFIG_7_POINT_1 = 12; % Matrix for 1:1 pass-through @@ -39,6 +40,16 @@ function sof_selector_blobs() sel.coeffs(1, 2) = 0.7071; stereo_to_mono_pack8 = write_blob(sel, "downmix_stereo_to_mono"); + % Stereo to dual-mono downmix + sel.ch_count = [2 2]; + sel.ch_config = [IPC4_CHANNEL_CONFIG_STEREO IPC4_CHANNEL_CONFIG_DUAL_MONO]; + sel.coeffs = zeros(8,8); + sel.coeffs(1, 1) = 0.5; + sel.coeffs(1, 2) = 0.5; + sel.coeffs(2, 1) = 0.5; + sel.coeffs(2, 2) = 0.5; + stereo_to_doublemono_pack8 = write_blob(sel, "downmix_stereo_to_doublemono"); + % 5.1 to stereo downmix sel.ch_count = [6 2]; sel.ch_config = [IPC4_CHANNEL_CONFIG_5_POINT_1 IPC4_CHANNEL_CONFIG_STEREO]; @@ -189,7 +200,7 @@ function write_8bit_packed(pack8, blobname) blob8 = sof_selector_build_blob(pack8); str_config = "selector_config"; str_exported = "Exported with script sof_selector_blobs.m"; - str_howto = "cd tools/tune/selector; octave sof_selector_blobs.m"; + str_howto = "cd src/audio/selector/tune; octave sof_selector_blobs.m"; sof_tools = '../../../../tools'; sof_tplg = fullfile(sof_tools, 'topology'); sof_tplg_selector = fullfile(sof_tplg, 'topology2/include/components/micsel'); diff --git a/tools/topology/topology2/include/components/micsel/downmix_stereo_to_doublemono.conf b/tools/topology/topology2/include/components/micsel/downmix_stereo_to_doublemono.conf new file mode 100644 index 000000000000..e9e2d1e78608 --- /dev/null +++ b/tools/topology/topology2/include/components/micsel/downmix_stereo_to_doublemono.conf @@ -0,0 +1,26 @@ +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m +Object.Base.data."selector_config" { + bytes " + 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, + 0x84,0x00,0x00,0x00,0x01,0xd0,0x01,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00" +} From 035336bd90d1e63c0076e294616e91ebfd3bcd27 Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Tue, 26 May 2026 15:24:15 +0300 Subject: [PATCH 2/3] Tools: Topology: Update Micsel configuration blob comments The location of the Micsel blobs export script changed. This patch updates the comment text in each configuration blob to show the correct path to the script. Signed-off-by: Seppo Ingalsuo --- .../components/micsel/downmix_51_to_mono_with_lfe.conf | 4 ++-- .../components/micsel/downmix_51_to_stereo_with_lfe.conf | 4 ++-- .../topology2/include/components/micsel/downmix_71_to_51.conf | 4 ++-- .../components/micsel/downmix_71_to_mono_with_lfe.conf | 4 ++-- .../components/micsel/downmix_71_to_stereo_with_lfe.conf | 4 ++-- .../include/components/micsel/downmix_stereo_to_mono.conf | 4 ++-- .../topology2/include/components/micsel/passthrough.conf | 4 ++-- .../components/micsel/stereo_endpoint_playback_updownmix.conf | 4 ++-- .../topology2/include/components/micsel/upmix_mono_to_51.conf | 4 ++-- .../topology2/include/components/micsel/upmix_mono_to_71.conf | 4 ++-- .../include/components/micsel/upmix_mono_to_stereo.conf | 4 ++-- .../include/components/micsel/upmix_stereo_to_51.conf | 4 ++-- .../include/components/micsel/upmix_stereo_to_71.conf | 4 ++-- .../include/components/micsel/xover_selector_lr_to_llrr.conf | 4 ++-- .../include/components/micsel/xover_selector_lr_to_lrlr.conf | 4 ++-- .../include/components/micsel/xover_selector_lr_to_rrll.conf | 4 ++-- 16 files changed, 32 insertions(+), 32 deletions(-) diff --git a/tools/topology/topology2/include/components/micsel/downmix_51_to_mono_with_lfe.conf b/tools/topology/topology2/include/components/micsel/downmix_51_to_mono_with_lfe.conf index 76aa09754ebe..ccfac873938d 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_51_to_mono_with_lfe.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_51_to_mono_with_lfe.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_51_to_stereo_with_lfe.conf b/tools/topology/topology2/include/components/micsel/downmix_51_to_stereo_with_lfe.conf index 0fb37e1d840b..b6e3ed571a74 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_51_to_stereo_with_lfe.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_51_to_stereo_with_lfe.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_71_to_51.conf b/tools/topology/topology2/include/components/micsel/downmix_71_to_51.conf index 93fe5fb1c3f9..75eab9b56b07 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_71_to_51.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_71_to_51.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_71_to_mono_with_lfe.conf b/tools/topology/topology2/include/components/micsel/downmix_71_to_mono_with_lfe.conf index 1e67d36bf839..ae3961a4af49 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_71_to_mono_with_lfe.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_71_to_mono_with_lfe.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_71_to_stereo_with_lfe.conf b/tools/topology/topology2/include/components/micsel/downmix_71_to_stereo_with_lfe.conf index b94ea59c1a9e..aab7d42c792b 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_71_to_stereo_with_lfe.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_71_to_stereo_with_lfe.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/downmix_stereo_to_mono.conf b/tools/topology/topology2/include/components/micsel/downmix_stereo_to_mono.conf index 510d303eb2d9..8eeb50cc9a96 100644 --- a/tools/topology/topology2/include/components/micsel/downmix_stereo_to_mono.conf +++ b/tools/topology/topology2/include/components/micsel/downmix_stereo_to_mono.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/passthrough.conf b/tools/topology/topology2/include/components/micsel/passthrough.conf index 0b795084ba29..23e1c7335bc0 100644 --- a/tools/topology/topology2/include/components/micsel/passthrough.conf +++ b/tools/topology/topology2/include/components/micsel/passthrough.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/stereo_endpoint_playback_updownmix.conf b/tools/topology/topology2/include/components/micsel/stereo_endpoint_playback_updownmix.conf index 70500ef0e0fa..1acc3f93eed6 100644 --- a/tools/topology/topology2/include/components/micsel/stereo_endpoint_playback_updownmix.conf +++ b/tools/topology/topology2/include/components/micsel/stereo_endpoint_playback_updownmix.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 10-Mar-2026 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_mono_to_51.conf b/tools/topology/topology2/include/components/micsel/upmix_mono_to_51.conf index c19828913473..ee8a11355c89 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_mono_to_51.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_mono_to_51.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_mono_to_71.conf b/tools/topology/topology2/include/components/micsel/upmix_mono_to_71.conf index c19828913473..ee8a11355c89 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_mono_to_71.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_mono_to_71.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_mono_to_stereo.conf b/tools/topology/topology2/include/components/micsel/upmix_mono_to_stereo.conf index 33ef4a7672f2..12a956940eaf 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_mono_to_stereo.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_mono_to_stereo.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_stereo_to_51.conf b/tools/topology/topology2/include/components/micsel/upmix_stereo_to_51.conf index b411410cab70..4cfb29e5af54 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_stereo_to_51.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_stereo_to_51.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/upmix_stereo_to_71.conf b/tools/topology/topology2/include/components/micsel/upmix_stereo_to_71.conf index b411410cab70..4cfb29e5af54 100644 --- a/tools/topology/topology2/include/components/micsel/upmix_stereo_to_71.conf +++ b/tools/topology/topology2/include/components/micsel/upmix_stereo_to_71.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 04-Jun-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_llrr.conf b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_llrr.conf index 4b4be2b34840..110c98de9eb6 100644 --- a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_llrr.conf +++ b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_llrr.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 08-Sep-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_lrlr.conf b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_lrlr.conf index 70489a0a0040..967e7327132b 100644 --- a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_lrlr.conf +++ b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_lrlr.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 08-Sep-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, diff --git a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_rrll.conf b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_rrll.conf index d88ba2063cd6..cf277480ecf7 100644 --- a/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_rrll.conf +++ b/tools/topology/topology2/include/components/micsel/xover_selector_lr_to_rrll.conf @@ -1,5 +1,5 @@ -# Exported with script sof_selector_blobs.m 08-Sep-2025 -# cd tools/tune/selector; octave sof_selector_blobs.m +# Exported with script sof_selector_blobs.m 26-May-2026 +# cd src/audio/selector/tune; octave sof_selector_blobs.m Object.Base.data."selector_config" { bytes " 0x53,0x4f,0x46,0x34,0x00,0x00,0x00,0x00, From e811834414120ad19643e29699cba2daf473c9db Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Thu, 21 May 2026 16:21:36 +0300 Subject: [PATCH 3/3] Tools: Topology: Add Micsel module to MFCC capture pipeline This patch adds the Micsel (or Selector) module with a configuration blob for stereo to double mono to source of MFCC. The Micsel module has better input select capabilities than bare MFCC module. The sum of L+R provides a slightly better SNR than the single (left) channel pick with MFCC for it's mono processing. It will reduce a bit noise in the audio features and possibly improve speech recognition quality. The previous pipeline class host-gateway-src-mfcc-capture.conf is removed because there is no other use for it. Signed-off-by: Seppo Ingalsuo --- tools/topology/topology2/cavs-sdw.conf | 2 +- ...host-gateway-src-micsel-mfcc-capture.conf} | 40 +++++++++++++++---- .../sdw-dmic-audio-feature-compress.conf | 11 ++++- .../intel/sdw-dmic-audio-feature.conf | 11 ++++- .../sdw-jack-audio-feature-compress.conf | 11 ++++- .../intel/sdw-jack-audio-feature.conf | 11 ++++- 6 files changed, 74 insertions(+), 12 deletions(-) rename tools/topology/topology2/include/pipelines/cavs/{host-gateway-src-mfcc-capture.conf => host-gateway-src-micsel-mfcc-capture.conf} (72%) diff --git a/tools/topology/topology2/cavs-sdw.conf b/tools/topology/topology2/cavs-sdw.conf index bcec2711a333..ab726e9ae9e0 100644 --- a/tools/topology/topology2/cavs-sdw.conf +++ b/tools/topology/topology2/cavs-sdw.conf @@ -30,7 +30,7 @@ - + diff --git a/tools/topology/topology2/include/pipelines/cavs/host-gateway-src-mfcc-capture.conf b/tools/topology/topology2/include/pipelines/cavs/host-gateway-src-micsel-mfcc-capture.conf similarity index 72% rename from tools/topology/topology2/include/pipelines/cavs/host-gateway-src-mfcc-capture.conf rename to tools/topology/topology2/include/pipelines/cavs/host-gateway-src-micsel-mfcc-capture.conf index fe6249018ef1..c721cb26b2d9 100644 --- a/tools/topology/topology2/include/pipelines/cavs/host-gateway-src-mfcc-capture.conf +++ b/tools/topology/topology2/include/pipelines/cavs/host-gateway-src-micsel-mfcc-capture.conf @@ -1,13 +1,13 @@ # -# SRC-MFCC capture pipeline +# SRC-Micsel-MFCC capture pipeline # # This class provides host pipeline for capture with MFCC audio features input. # All attributes defined herein are namespaced by alsatplg to -# "Object.Pipeline.host-gateway-src-mfcc-capture.N.attribute_name". +# "Object.Pipeline.host-gateway-src-micsel-mfcc-capture.N.attribute_name". # -# Usage: host-gateway-src-mfcc-capture pipeline object can be instantiated as: +# Usage: host-gateway-src-micsel-mfcc-capture pipeline object can be instantiated as: # -# Object.Pipeline.host-gateway-src-mfcc-capture."N" { +# Object.Pipeline.host-gateway-src-micsel-mfcc-capture."N" { # period 1000 # time_domain "timer" # } @@ -20,6 +20,7 @@ + Define { @@ -28,7 +29,7 @@ Define { MFCC_FRAME_BYTES 344 } -Class.Pipeline."host-gateway-src-mfcc-capture" { +Class.Pipeline."host-gateway-src-micsel-mfcc-capture" { @@ -38,8 +39,8 @@ Class.Pipeline."host-gateway-src-mfcc-capture" { ] # - # host-gateway-src-mfcc-capture objects instantiated within the same alsaconf - # node must have unique pipeline_id attribute + # host-gateway-src-micsel-mfcc-capture objects instantiated within the + # same alsaconf node must have unique pipeline_id attribute # unique "instance" } @@ -76,6 +77,27 @@ Class.Pipeline."host-gateway-src-mfcc-capture" { ] } + micsel."1" { + num_input_audio_formats 1 + num_output_audio_formats 1 + Object.Base.input_audio_format [ + { + in_bit_depth 32 + in_valid_bit_depth 32 + in_rate 16000 + } + ] + Object.Base.output_audio_format [ + { + out_bit_depth 32 + out_valid_bit_depth 32 + out_rate 16000 + out_channels 2 + out_ch_cfg $CHANNEL_CONFIG_DUAL_MONO + } + ] + } + mfcc."1" { num_input_audio_formats 1 num_output_audio_formats 1 @@ -135,6 +157,10 @@ Class.Pipeline."host-gateway-src-mfcc-capture" { !route [ { source src.$index.1 + sink micsel.$index.1 + } + { + source micsel.$index.1 sink mfcc.$index.1 } ] diff --git a/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature-compress.conf b/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature-compress.conf index 9e307043830b..7f6b7daa804e 100644 --- a/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature-compress.conf +++ b/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature-compress.conf @@ -12,7 +12,7 @@ Define { MFCC_BLOB mel } -Object.Pipeline.host-gateway-src-mfcc-capture [ +Object.Pipeline.host-gateway-src-micsel-mfcc-capture [ { index $SDW_DMIC_COMPR_AUDIO_FEATURE_CAPTURE_PIPELINE_ID @@ -21,6 +21,15 @@ Object.Pipeline.host-gateway-src-mfcc-capture [ pcm_id $SDW_DMIC_COMPR_AUDIO_FEATURE_CAPTURE_PCM_ID } + Object.Widget.micsel.1 { + Object.Control { + bytes."1" { + name "$SDW_DMIC_COMPR_AUDIO_FEATURE_CAPTURE_PCM_NAME Micsel bytes" + + } + } + } + Object.Widget.mfcc.1 { type "encoder" Object.Control { diff --git a/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature.conf b/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature.conf index 7d39c11772c1..fdb4acbf9a6d 100644 --- a/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature.conf +++ b/tools/topology/topology2/platform/intel/sdw-dmic-audio-feature.conf @@ -9,7 +9,7 @@ Define { MFCC_FRAME_BYTES 344 } -Object.Pipeline.host-gateway-src-mfcc-capture [ +Object.Pipeline.host-gateway-src-micsel-mfcc-capture [ { index $SDW_DMIC_AUDIO_FEATURE_CAPTURE_PIPELINE_ID @@ -18,6 +18,15 @@ Object.Pipeline.host-gateway-src-mfcc-capture [ pcm_id $SDW_DMIC_AUDIO_FEATURE_CAPTURE_PCM_ID } + Object.Widget.micsel.1 { + Object.Control { + bytes."1" { + name "$SDW_DMIC_AUDIO_FEATURE_CAPTURE_PCM_NAME Micsel bytes" + + } + } + } + Object.Widget.mfcc.1 { Object.Control { bytes."1" { diff --git a/tools/topology/topology2/platform/intel/sdw-jack-audio-feature-compress.conf b/tools/topology/topology2/platform/intel/sdw-jack-audio-feature-compress.conf index 286af8be0323..34577ac0a3be 100644 --- a/tools/topology/topology2/platform/intel/sdw-jack-audio-feature-compress.conf +++ b/tools/topology/topology2/platform/intel/sdw-jack-audio-feature-compress.conf @@ -12,7 +12,7 @@ Define { MFCC_BLOB mel } -Object.Pipeline.host-gateway-src-mfcc-capture [ +Object.Pipeline.host-gateway-src-micsel-mfcc-capture [ { index $SDW_JACK_COMPR_AUDIO_FEATURE_CAPTURE_PIPELINE_ID @@ -21,6 +21,15 @@ Object.Pipeline.host-gateway-src-mfcc-capture [ pcm_id $SDW_JACK_COMPR_AUDIO_FEATURE_CAPTURE_PCM_ID } + Object.Widget.micsel.1 { + Object.Control { + bytes."1" { + name "$SDW_JACK_COMPR_AUDIO_FEATURE_CAPTURE_PCM_NAME Micsel bytes" + + } + } + } + Object.Widget.mfcc.1 { type "encoder" Object.Control { diff --git a/tools/topology/topology2/platform/intel/sdw-jack-audio-feature.conf b/tools/topology/topology2/platform/intel/sdw-jack-audio-feature.conf index a0a44eae4d87..3e97833ab431 100644 --- a/tools/topology/topology2/platform/intel/sdw-jack-audio-feature.conf +++ b/tools/topology/topology2/platform/intel/sdw-jack-audio-feature.conf @@ -9,7 +9,7 @@ Define { MFCC_FRAME_BYTES 344 } -Object.Pipeline.host-gateway-src-mfcc-capture [ +Object.Pipeline.host-gateway-src-micsel-mfcc-capture [ { index $SDW_JACK_AUDIO_FEATURE_CAPTURE_PIPELINE_ID @@ -18,6 +18,15 @@ Object.Pipeline.host-gateway-src-mfcc-capture [ pcm_id $SDW_JACK_AUDIO_FEATURE_CAPTURE_PCM_ID } + Object.Widget.micsel.1 { + Object.Control { + bytes."1" { + name "$SDW_JACK_AUDIO_FEATURE_CAPTURE_PCM_NAME Micsel bytes" + + } + } + } + Object.Widget.mfcc.1 { Object.Control { bytes."1" {