QUICK START#
Requirements#
XTC Tools 15.2.1 or higher
CMake 3.20 or higher
Python 3.7 or higher
It is highly recommended to use Ninja as the make system under Windows. Not only has Ninja been observed to be faster than MSVC nmake, it also works around an XMOS tools bug where certain path names may cause an issue with the XMOS compiler under Windows. This firmware has been tested with Ninja version v1.11.1.
To install Ninja, follow these steps:
Download
ninja.exe
from the Ninja release page and save to a suitable location such asC:\Program Files\ninja
.Ensure Ninja is on the command line path. It may be added to the system path using the following command:
set PATH=%PATH%;C:\Program Files\ninja
. This will work for the lifetime of the current command prompt.The Ninja path may be permanently added to the system path using
setx
(use with caution) or via the Windows GUI: Control panel -> Advanced system settings -> Environment variables -> System variables -> Path
The correct installation of Ninja can be tested by typing ninja
under an XTC Tools Command Prompt. The following error will be seen verifying that Ninja is correctly on the path but run from a directory not containing any document source files:
ninja: error: loading 'build.ninja': The system cannot find the file specified.
Building#
The following instructions show how to build the Voice Framework and run one of the example applications. This procedure is currently supported on MacOS, Linux and Windows.
Enter the clone of the Voice Framework and initialise submodules
cd fwk_voice git submodule update --init --recursive
Create a build directory
mkdir build cd build
Run cmake to setup the build environment for the XMOS toolchain
On Linux and Mac
cmake --toolchain ../xmos_cmake_toolchain/xs3a.cmake ..
On Windows
# make sure you have the patch command available cmake -G "Ninja" --toolchain ../xmos_cmake_toolchain/xs3a.cmake ..
As part of the cmake, some dependencies are fetched using CMake FetchContent. One of these dependencies, lib_tflite_micro has a patch applied to it as part of the FetchContent. This means, when trying to rerun the cmake in the same build directory, sometimes errors related to not being able to apply a patch to an already patched library are seen. To get rid of these errors, add the -DFETCHCONTENT_UPDATES_DISCONNECTED=ON option to the cmake command line, which will disable the FetchContent if the content has been downloaded previously.
Running make will then build the Voice Framework libraries and example applications
On Linux and Mac
make fwk_voice_example_bare_metal_aec_1_thread
On Windows
ninja fwk_voice_example_bare_metal_aec_1_thread
Install dependencies
On Linux and Mac
pip install -e build/fwk_voice_deps/xscope_fileio/
On Windows
pip install -e fwk_voice_deps/xscope_fileio cd fwk_voice_deps/xscope_fileio/host cmake -G "Ninja" . ninja cd ../../../
Run the single-threaded AEC example
cd ../examples/bare-metal/aec_1_thread python ../shared_src/python/run_xcoreai.py ../../../build/examples/bare-metal/aec_1_thread/bin/fwk_voice_example_bare_metal_aec_1_thread.xe --input ../shared_src/test_streams/aec_example_input.wav
See
Example Applications
section in the User Guide for full details about the examples.