Skip to content

Commit 3dc3e5c

Browse files
singalsukv2019i
authored andcommitted
Tools: Topology: Add test topologies for MFCC
There was earlier only topology1 for MFCC. This patch adds topologies sof-hda-benchmark-mfcc16/24/32.tplg to be able to test the component in testbench environment. Note: Due to the set 16 kHz DAI rate these can't be used in real devices. It will need a capture pipeline with 48 kHz to 16 kHz SRC. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
1 parent 806051d commit 3dc3e5c

15 files changed

Lines changed: 397 additions & 0 deletions

tools/topology/topology2/cavs-benchmark-hda.conf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
<gain.conf>
4141
<igo_nr.conf>
4242
<level_multiplier.conf>
43+
<mfcc.conf>
4344
<micsel.conf>
4445
<mixin.conf>
4546
<mixout.conf>
@@ -817,6 +818,22 @@ IncludeByKey.BENCH_CONFIG {
817818
<include/bench/level_multiplier_s32.conf>
818819
}
819820

821+
#
822+
# MFCC component
823+
#
824+
825+
"mfcc16" {
826+
<include/bench/mfcc_s16.conf>
827+
}
828+
829+
"mfcc24" {
830+
<include/bench/mfcc_s24.conf>
831+
}
832+
833+
"mfcc32" {
834+
<include/bench/mfcc_s32.conf>
835+
}
836+
820837
#
821838
# Micsel component
822839
#

tools/topology/topology2/cavs-benchmark-sdw.conf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
<gain.conf>
4040
<igo_nr.conf>
4141
<level_multiplier.conf>
42+
<mfcc.conf>
4243
<micsel.conf>
4344
<multiband_drc.conf>
4445
<rtnr.conf>
@@ -440,6 +441,12 @@ IncludeByKey.BENCH_CONFIG {
440441
<include/bench/level_multiplier_s32.conf>
441442
}
442443

444+
# MFCC benchmark configs are intentionally not enabled in the SDW
445+
# benchmark topology because the SDW ALH DAI/coprocessor side is
446+
# constrained to $JACK_RATE while MFCC bench configs operate in a
447+
# different rate domain. Re-enable only after adding a matching rate
448+
# override or explicit sample-rate conversion.
449+
443450
#
444451
# Micsel component
445452
#

tools/topology/topology2/development/tplg-targets-bench.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ set(components
1818
"gain"
1919
"igo_nr"
2020
"level_multiplier"
21+
"mfcc"
2122
"micsel"
2223
"rtnr"
2324
"sound_dose"
@@ -43,6 +44,7 @@ set(component_parameters
4344
"BENCH_GAIN_PARAMS=default"
4445
"BENCH_IGO_NR_PARAMS=default"
4546
"BENCH_LEVEL_MULTIPLIER_PARAMS=default"
47+
"BENCH_MFCC_PARAMS=default"
4648
"BENCH_MICSEL_PARAMS=passthrough"
4749
"BENCH_RTNR_PARAMS=default"
4850
"BENCH_SOUND_DOSE_PARAMS=default"
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
Object.Pipeline {
2+
host-gateway-playback [
3+
{
4+
index $BENCH_PLAYBACK_HOST_PIPELINE
5+
Object.Widget.host-copier.1 {
6+
stream_name $ANALOG_PLAYBACK_PCM
7+
pcm_id 0
8+
num_input_audio_formats 3
9+
num_output_audio_formats 1
10+
Object.Base.input_audio_format [
11+
{
12+
in_bit_depth 16
13+
in_valid_bit_depth 16
14+
in_rate 16000
15+
}
16+
{
17+
in_bit_depth 32
18+
in_valid_bit_depth 24
19+
in_rate 16000
20+
}
21+
{
22+
in_bit_depth 32
23+
in_valid_bit_depth 32
24+
in_rate 16000
25+
}
26+
]
27+
Object.Base.output_audio_format [
28+
{
29+
out_bit_depth 16
30+
out_valid_bit_depth 16
31+
out_rate 16000
32+
}
33+
]
34+
}
35+
}
36+
]
37+
38+
host-gateway-capture [
39+
{
40+
index $BENCH_CAPTURE_HOST_PIPELINE
41+
Object.Widget.host-copier.1 {
42+
stream_name $ANALOG_CAPTURE_PCM
43+
pcm_id 0
44+
num_input_audio_formats 1
45+
num_output_audio_formats 3
46+
Object.Base.input_audio_format [
47+
{
48+
in_bit_depth 16
49+
in_valid_bit_depth 16
50+
in_rate 16000
51+
}
52+
]
53+
Object.Base.output_audio_format [
54+
{
55+
out_bit_depth 16
56+
out_valid_bit_depth 16
57+
out_rate 16000
58+
}
59+
{
60+
out_bit_depth 32
61+
out_valid_bit_depth 24
62+
out_rate 16000
63+
}
64+
{
65+
out_bit_depth 32
66+
out_valid_bit_depth 32
67+
out_rate 16000
68+
}
69+
]
70+
}
71+
}
72+
]
73+
}
74+
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
Object.Pipeline {
2+
host-gateway-playback [
3+
{
4+
index $BENCH_PLAYBACK_HOST_PIPELINE
5+
Object.Widget.host-copier.1 {
6+
stream_name $ANALOG_PLAYBACK_PCM
7+
pcm_id 0
8+
num_input_audio_formats 3
9+
num_output_audio_formats 1
10+
Object.Base.input_audio_format [
11+
{
12+
in_bit_depth 16
13+
in_valid_bit_depth 16
14+
in_rate 16000
15+
}
16+
{
17+
in_bit_depth 32
18+
in_valid_bit_depth 24
19+
in_rate 16000
20+
}
21+
{
22+
in_bit_depth 32
23+
in_valid_bit_depth 32
24+
in_rate 16000
25+
}
26+
]
27+
Object.Base.output_audio_format [
28+
{
29+
out_bit_depth 32
30+
out_valid_bit_depth 24
31+
out_rate 16000
32+
}
33+
]
34+
}
35+
}
36+
]
37+
38+
host-gateway-capture [
39+
{
40+
index $BENCH_CAPTURE_HOST_PIPELINE
41+
Object.Widget.host-copier.1 {
42+
stream_name $ANALOG_CAPTURE_PCM
43+
pcm_id 0
44+
num_input_audio_formats 1
45+
num_output_audio_formats 3
46+
Object.Base.input_audio_format [
47+
{
48+
in_bit_depth 32
49+
in_valid_bit_depth 24
50+
in_rate 16000
51+
}
52+
]
53+
Object.Base.output_audio_format [
54+
{
55+
out_bit_depth 16
56+
out_valid_bit_depth 16
57+
out_rate 16000
58+
}
59+
{
60+
out_bit_depth 32
61+
out_valid_bit_depth 24
62+
out_rate 16000
63+
}
64+
{
65+
out_bit_depth 32
66+
out_valid_bit_depth 32
67+
out_rate 16000
68+
}
69+
]
70+
}
71+
}
72+
]
73+
}
74+
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
Object.Pipeline {
2+
host-gateway-playback [
3+
{
4+
index $BENCH_PLAYBACK_HOST_PIPELINE
5+
Object.Widget.host-copier.1 {
6+
stream_name $ANALOG_PLAYBACK_PCM
7+
pcm_id 0
8+
num_input_audio_formats 3
9+
num_output_audio_formats 1
10+
Object.Base.input_audio_format [
11+
{
12+
in_bit_depth 16
13+
in_valid_bit_depth 16
14+
in_rate 16000
15+
}
16+
{
17+
in_bit_depth 32
18+
in_valid_bit_depth 24
19+
in_rate 16000
20+
}
21+
{
22+
in_bit_depth 32
23+
in_valid_bit_depth 32
24+
in_rate 16000
25+
}
26+
]
27+
Object.Base.output_audio_format [
28+
{
29+
out_bit_depth 32
30+
out_valid_bit_depth 32
31+
out_rate 16000
32+
}
33+
]
34+
}
35+
}
36+
]
37+
38+
host-gateway-capture [
39+
{
40+
index $BENCH_CAPTURE_HOST_PIPELINE
41+
Object.Widget.host-copier.1 {
42+
stream_name $ANALOG_CAPTURE_PCM
43+
pcm_id 0
44+
num_input_audio_formats 1
45+
num_output_audio_formats 3
46+
Object.Base.input_audio_format [
47+
{
48+
in_bit_depth 32
49+
in_valid_bit_depth 32
50+
in_rate 16000
51+
}
52+
]
53+
Object.Base.output_audio_format [
54+
{
55+
out_bit_depth 16
56+
out_valid_bit_depth 16
57+
out_rate 16000
58+
}
59+
{
60+
out_bit_depth 32
61+
out_valid_bit_depth 24
62+
out_rate 16000
63+
}
64+
{
65+
out_bit_depth 32
66+
out_valid_bit_depth 32
67+
out_rate 16000
68+
}
69+
]
70+
}
71+
}
72+
]
73+
}
74+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Created initially with script "./bench_comp_generate.sh mfcc"
2+
# may need edits to modify controls
3+
Object.Control {
4+
# Un-comment the supported controls in MFCC
5+
bytes."1" {
6+
name '$ANALOG_CAPTURE_PCM MFCC bytes'
7+
IncludeByKey.BENCH_MFCC_PARAMS {
8+
"default" "include/components/mfcc/default.conf"
9+
}
10+
}
11+
#mixer."1" {
12+
# name '$ANALOG_CAPTURE_PCM MFCC switch or volume'
13+
#}
14+
#enum."1" {
15+
# name '$ANALOG_CAPTURE_PCM MFCC enum'
16+
#}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Created initially with script "./bench_comp_generate.sh mfcc"
2+
# may need edits to modify controls
3+
Object.Control {
4+
# Un-comment the supported controls in MFCC
5+
bytes."1" {
6+
name '$ANALOG_PLAYBACK_PCM MFCC bytes'
7+
IncludeByKey.BENCH_MFCC_PARAMS {
8+
"default" "include/components/mfcc/default.conf"
9+
}
10+
}
11+
#mixer."1" {
12+
# name '$ANALOG_PLAYBACK_PCM MFCC switch or volume'
13+
#}
14+
#enum."1" {
15+
# name '$ANALOG_PLAYBACK_PCM MFCC enum'
16+
#}
17+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Created with script "./bench_comp_generate.sh mfcc"
2+
Object.Base.route [
3+
{
4+
sink '$BENCH_PLAYBACK_DAI_COPIER'
5+
source 'mfcc.$BENCH_PLAYBACK_HOST_PIPELINE.1'
6+
}
7+
{
8+
sink 'mfcc.$BENCH_PLAYBACK_HOST_PIPELINE.1'
9+
source 'host-copier.0.playback'
10+
}
11+
{
12+
source '$BENCH_CAPTURE_DAI_COPIER'
13+
sink 'mfcc.$BENCH_CAPTURE_HOST_PIPELINE.2'
14+
}
15+
{
16+
source 'mfcc.$BENCH_CAPTURE_HOST_PIPELINE.2'
17+
sink 'host-copier.0.capture'
18+
}
19+
]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Created with script "./bench_comp_generate.sh mfcc"
2+
Object.Widget.mfcc.1 {
3+
index $BENCH_PLAYBACK_HOST_PIPELINE
4+
<include/bench/one_input_output_format_s16_16k.conf>
5+
<include/bench/mfcc_controls_playback.conf>
6+
}
7+
Object.Widget.mfcc.2 {
8+
index $BENCH_CAPTURE_HOST_PIPELINE
9+
<include/bench/one_input_output_format_s16_16k.conf>
10+
<include/bench/mfcc_controls_capture.conf>
11+
}
12+
<include/bench/host_gateway_pipelines_s16_16k.conf>
13+
<include/bench/mfcc_route.conf>

0 commit comments

Comments
 (0)