语音对讲场景有时候需要实现回音消除或者噪声抑制功能,利用speexdsp的音频处理的3A算法可以实现需求,因此需要在Buildroot里添加speexdsp库。
1. 准备
去speex官网下载SpeexDSP源码,当前最新版本是1.2.1,解压speexdsp-1.2.1.tar.gz到工作文件夹
2. 交叉编译
进入工作文件夹
cd speexdsp-1.2.1/
touch build.sh
编辑buils.sh文件
#!/bin/bash
PREFIX="/home/vm/tspi/speexdsp-1.2.1/build"
TOOLCHAIN_DIR="/home/vm/tspi_linux_sdk/buildroot/output/rockchip_rk3566/host/bin"
TOOLCHAIN="$TOOLCHAIN_DIR/aarch64-buildroot-linux-gnu-gcc"
@mkdir -p build
echo "配置..."
./configure \
--prefix=$PREFIX \
--host=aarch64-linux \
--enable-shared \
--enable-static \
--enable-sse \
CC=$TOOLCHAIN
echo "编译..."
make
echo "安装..."
make install
echo "清理..."
make clean
$PREFIX是生成库的目录,在工作文件夹下的build
$TOOLCHAIN是交叉编译工具
编译
./build.sh
在build/lib子文件夹里会生成静态库和动态库
3. 动态库使用
将3个动态库文件libspeexdsp.so、libspeexdsp.so.1、libspeexdsp.so.1.5.2拷贝到/home/vm/tspi_linux_sdk/buildroot/output/rockchip_rk3566/target/usr/lib/
编译buildroot、烧写镜像到泰山派开发板,程序运行时就可以调用speexdsp库函数了。
build/include子文件夹里面是头文件,供应用程序函数调用。
当然也可以在应用程序里直接使用静态库。