Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/boards/intel_adsp_ace15_mtpm.conf
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ CONFIG_COMP_MFCC=y
CONFIG_COMP_MULTIBAND_DRC=y
CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_SAMPLE_KEYPHRASE=y
CONFIG_COMP_PHASE_VOCODER=y
CONFIG_COMP_STFT_PROCESS=y

# SOF / audio modules / mocks
Expand Down
1 change: 1 addition & 0 deletions app/boards/intel_adsp_ace20_lnl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ CONFIG_COMP_TESTER=m
CONFIG_COMP_SRC_IPC4_FULL_MATRIX=y
CONFIG_FORMAT_CONVERT_HIFI3=n
CONFIG_SAMPLE_KEYPHRASE=y
CONFIG_COMP_PHASE_VOCODER=y
CONFIG_COMP_STFT_PROCESS=y

# SOF / infrastructure
Expand Down
1 change: 1 addition & 0 deletions src/arch/host/configs/library_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ CONFIG_COMP_MFCC=y
CONFIG_COMP_MODULE_ADAPTER=y
CONFIG_COMP_MULTIBAND_DRC=y
CONFIG_COMP_MUX=y
CONFIG_COMP_PHASE_VOCODER=y
CONFIG_COMP_RTNR=y
CONFIG_COMP_SEL=y
CONFIG_COMP_SOUND_DOSE=y
Expand Down
3 changes: 3 additions & 0 deletions src/audio/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ if(NOT CONFIG_COMP_MODULE_SHARED_LIBRARY_BUILD)
if(CONFIG_COMP_MUX)
add_subdirectory(mux)
endif()
if(CONFIG_COMP_PHASE_VOCODER)
add_subdirectory(phase_vocoder)
endif()
if(CONFIG_COMP_RTNR)
add_subdirectory(rtnr)
endif()
Expand Down
1 change: 1 addition & 0 deletions src/audio/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ rsource "module_adapter/Kconfig"
rsource "multiband_drc/Kconfig"
rsource "mux/Kconfig"
rsource "nxp/Kconfig"
rsource "phase_vocoder/Kconfig"
rsource "rtnr/Kconfig"
rsource "selector/Kconfig"
rsource "smart_amp/Kconfig"
Expand Down
15 changes: 15 additions & 0 deletions src/audio/phase_vocoder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# SPDX-License-Identifier: BSD-3-Clause

if(CONFIG_COMP_PHASE_VOCODER STREQUAL "m" AND DEFINED CONFIG_LLEXT)
add_subdirectory(llext ${PROJECT_BINARY_DIR}/phase_vocoder_llext)
add_dependencies(app phase_vocoder)
else()
add_local_sources(sof phase_vocoder.c)
add_local_sources(sof phase_vocoder_setup.c)
add_local_sources(sof phase_vocoder_common.c)
add_local_sources(sof phase_vocoder-generic.c)

if(CONFIG_IPC_MAJOR_4)
add_local_sources(sof phase_vocoder-ipc4.c)
endif()
endif()
14 changes: 14 additions & 0 deletions src/audio/phase_vocoder/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SPDX-License-Identifier: BSD-3-Clause

config COMP_PHASE_VOCODER
tristate "Phase Vocoder component"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you want to make it default m if LIBRARY_DEFAULT_MODULAR=

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, done!

default m if LIBRARY_DEFAULT_MODULAR
select MATH_FFT
select MATH_32BIT_FFT
help
Select for phase_vocoder component. The component provides
render speed control in range 0.5-2.0x. The pitch is
preserved in audio waveform stretch or shorten. The module
is using a frequency domain algorithm in STFT domain to
interpolate magnitude and phase of output IFFT frames from
input FFT frames.
11 changes: 11 additions & 0 deletions src/audio/phase_vocoder/llext/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Copyright (c) 2026 Intel Corporation.
# SPDX-License-Identifier: Apache-2.0

sof_llext_build("phase_vocoder"
SOURCES ../phase_vocoder.c
../phase_vocoder_setup.c
../phase_vocoder_common.c
../phase_vocoder-generic.c
../phase_vocoder-ipc4.c
LIB openmodules
)
6 changes: 6 additions & 0 deletions src/audio/phase_vocoder/llext/llext.toml.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <tools/rimage/config/platform.toml>
#define LOAD_TYPE "2"
#include "../phase_vocoder.toml"

[module]
count = __COUNTER__
Loading
Loading