Skip to content

Commit 22e3eee

Browse files
committed
audio: webrtc: wire VAD/NS/AEC/NS2 modules into build system
Register all four WebRTC audio processing modules in the SOF build system: Kconfig (src/audio/Kconfig): - rsource the four module Kconfig files (alphabetical order) CMakeLists (src/audio/CMakeLists.txt): - add_subdirectory() guards for COMP_WEBRTC_{VAD,NS,AEC,NS2} UUID registry (uuid-registry.txt): - c790b11d-5d14-e54e-be36ba4ad732cc14 webrtc_vad - 0fc8faef-945f-004b-8d5f315047f1136a webrtc_ns - e5da7b5b-133a-ba46-b517651d6300bb83 webrtc_aec - eacfacdc-2a87-c942-97e894c917a740db webrtc_ns2 west.yml: - Add remotes: libfvad (dpirch), webrtc-apm (freedesktop.org), rnnoise (xiph) - Add project entries with pinned revisions: libfvad @ 532ab666c20d → modules/audio/libfvad webrtc-apm v0.3.1 → modules/audio/webrtc-apm rnnoise @ 70f1d256 → modules/audio/rnnoise Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
1 parent b4cfc8b commit 22e3eee

4 files changed

Lines changed: 59 additions & 0 deletions

File tree

src/audio/CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,18 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD)
110110
if(CONFIG_COMP_VOLUME)
111111
add_subdirectory(volume)
112112
endif()
113+
if(CONFIG_COMP_WEBRTC_VAD)
114+
add_subdirectory(webrtc_vad)
115+
endif()
116+
if(CONFIG_COMP_WEBRTC_NS)
117+
add_subdirectory(webrtc_ns)
118+
endif()
119+
if(CONFIG_COMP_WEBRTC_AEC)
120+
add_subdirectory(webrtc_aec)
121+
endif()
122+
if(CONFIG_COMP_WEBRTC_NS2)
123+
add_subdirectory(webrtc_ns2)
124+
endif()
113125
if(CONFIG_DTS_CODEC)
114126
add_subdirectory(codec)
115127
endif()

src/audio/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,10 @@ rsource "tensorflow/Kconfig"
162162
rsource "tone/Kconfig"
163163
rsource "up_down_mixer/Kconfig"
164164
rsource "volume/Kconfig"
165+
rsource "webrtc_vad/Kconfig"
166+
rsource "webrtc_ns/Kconfig"
167+
rsource "webrtc_aec/Kconfig"
168+
rsource "webrtc_ns2/Kconfig"
165169
# --- End Kconfig Sources (alphabetical order) ---
166170

167171
rsource "level_multiplier/Kconfig"

uuid-registry.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,10 @@ e93326d8-0d14-4bf0-bcb9e063d3d80136 twb_sched
179179
b77e677e-5ff4-4188-af14fba8bdbf8682 volume
180180
8a171323-94a3-4e1d-afe9fe5dbaa4c393 volume4
181181
1028070e-04e8-46ab-8d8110a0116ce738 wait
182+
c790b11d-5d14-e54e-be36ba4ad732cc14 webrtc_vad
183+
0fc8faef-945f-004b-8d5f315047f1136a webrtc_ns
184+
e5da7b5b-133a-ba46-b517651d6300bb83 webrtc_aec
185+
eacfacdc-2a87-c942-97e894c917a740db webrtc_ns2
182186
d944281a-afe9-4695-a043d7f62b89538e waves
183187
13c8bc59-c4fa-4ad1-b93ace97cd30acc7 wdt
184188
300aaad4-45d2-8313-25d05e1d6086cdd1 zephyr

west.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,20 @@ manifest:
2020
# libshine fixed-point MP3 encoder for FFMPEG_ENC_MP3 (upstream mirror).
2121
- name: shine
2222
url-base: https://github.com/toots
23+
# libfvad: pure-C BSD-3 extraction of the WebRTC GMM VAD for the
24+
# webrtc_vad module (CONFIG_COMP_WEBRTC_VAD). Cross-built by
25+
# src/audio/webrtc_vad/webrtc_vad.cmake.
26+
- name: libfvad
27+
url-base: https://github.com/dpirch
28+
# webrtc-apm: webrtc-audio-processing 0.3.x source used for the classic
29+
# WebRTC Noise Suppression module (CONFIG_COMP_WEBRTC_NS). Pure-C subset,
30+
# no abseil. Cross-built by src/audio/webrtc_ns/webrtc_ns.cmake.
31+
- name: webrtc-apm
32+
url-base: https://gitlab.freedesktop.org/gstreamer
33+
# rnnoise: xiph/rnnoise deep-learning noise suppressor used by webrtc_ns2.
34+
# Pure C, BSD-3-Clause. Pinned at Feb-2025 tip.
35+
- name: rnnoise
36+
url-base: https://github.com/xiph
2337

2438
# When upgrading projects here please run git log --oneline in the
2539
# project and if not too long then include the output in your commit
@@ -68,6 +82,31 @@ manifest:
6882
revision: ab5e3526b64af1a2eaa43aa6f441a7312e013519
6983
remote: shine
7084

85+
# libfvad: standalone WebRTC GMM VAD for the webrtc_vad module.
86+
# Cross-built by src/audio/webrtc_vad/webrtc_vad.cmake.
87+
- name: libfvad
88+
repo-path: libfvad
89+
path: modules/audio/libfvad
90+
revision: 532ab666c20d3cfda38bca63abbb0f152706c369
91+
remote: libfvad
92+
93+
# webrtc-audio-processing 0.3.1 — classic WebRTC APM for webrtc_ns module.
94+
# Pure-C NS subset only; no C++ or abseil dependency.
95+
# Cross-built by src/audio/webrtc_ns/webrtc_ns.cmake.
96+
- name: webrtc-apm
97+
repo-path: webrtc-audio-processing
98+
path: modules/audio/webrtc-apm
99+
revision: v0.3.1
100+
remote: webrtc-apm
101+
102+
# rnnoise — xiph/rnnoise deep-learning noise suppressor (webrtc_ns2).
103+
# Pure C, BSD-3-Clause. Pinned at Feb-2025 tip (post RNNoise 2.0 refactor).
104+
- name: rnnoise
105+
repo-path: rnnoise
106+
path: modules/audio/rnnoise
107+
revision: 70f1d256acd4b34a572f999a05c87bf00b67730d
108+
remote: rnnoise
109+
71110
- name: zephyr
72111
repo-path: zephyr
73112
revision: ef5cfd369f4a0ab3601db9a23c1da8c406cc1a72

0 commit comments

Comments
 (0)