From 1cca01e54b0ab666aee0324815c565b0ad951c43 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 24 Mar 2023 10:41:39 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84Cmake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 37 ++++++++++++++++++------------------- CMakeListsAARCH64.cmake | 2 -- buildtools | 2 +- sh/envsetup.sh | 17 ++++++++++++++++- src/main.cpp | 38 ++++++++++++++++++++++++++++++++++++++ src/test/test_voice_process.cpp | 0 6 files changed, 73 insertions(+), 23 deletions(-) create mode 100644 src/test/test_voice_process.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 5446af4..3e389b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,31 +13,33 @@ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) # 设置通用编译选项 -set(C_CPP_FLAGS "${C_CPP_FLAGS} ") -set(C_CPP_FLAGS - "${C_CPP_FLAGS} -Wno-unused-local-typedefs -Wno-unused-but-set-variable -Wno-deprecated-declarations -Wno-unused-variable" -) -set(C_CPP_FLAGS - "${C_CPP_FLAGS} -Wno-unused-local-typedefs -Wno-unused-but-set-variable -Wno-deprecated-declarations -Wno-unused-variable" -) -set(C_CPP_FLAGS - "${C_CPP_FLAGS} -Werror=return-type -Werror=parentheses -Wfatal-errors -Wno-comment" -) set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-format-overflow") -set(C_CPP_FLAGS "${C_CPP_FLAGS} -O0 -g3 -fPIC -Wall") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-unused-local-typedefs") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-unused-but-set-variable") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-deprecated-declarations") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Werror=return-type") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Werror=parentheses") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wfatal-errors") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wno-comment") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -O3") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -g3") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -fPIC") +set(C_CPP_FLAGS "${C_CPP_FLAGS} -Wall") # 设置C编译选项 -set(CMAKE_C_FLAGS "${C_CPP_FLAGS}") -message("CMAKE_C_FLAGS : ${CMAKE_C_FLAGS}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_CPP_FLAGS}") # 设置CPP编译选项 -set(CMAKE_CXX_FLAGS "${C_CPP_FLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pessimizing-move -Wno-reorder") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${C_CPP_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pessimizing-move") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") message("PROJECT_NAME: ${PROJECT_NAME}") message("PUBLIC_LINK_DIRECTORIES: ${PUBLIC_LINK_DIRECTORIES}") message("PUBLIC_INCLUDE_DIRECTORIES: ${PUBLIC_INCLUDE_DIRECTORIES}") +message("PUBLIC_LINK_LIBS: ${PUBLIC_LINK_LIBS}") # 添加相应的依赖代码 include(dep/iflytopcpp/module.cmake) @@ -66,11 +68,9 @@ set(DEP_LINK_LIBRARIES # sys asound pthread - # + ${PUBLIC_LINK_LIBS} # curlpp curl ) -# 设置当前工程依赖的头文件路径和链接的库文件 -set(DEP_LINK_LIBRARIES ${DEP_LINK_LIBRARIES} pthread) # 设置头文件路径 set(PUBLIC_INCLUDE_DIRECTORIES ${PUBLIC_INCLUDE_DIRECTORIES}) # 设置链接库路径 @@ -89,4 +89,3 @@ else() include(CMakeListsAARCH64.cmake) return() endif() - diff --git a/CMakeListsAARCH64.cmake b/CMakeListsAARCH64.cmake index 2a4ee2f..0c2abfa 100644 --- a/CMakeListsAARCH64.cmake +++ b/CMakeListsAARCH64.cmake @@ -1,5 +1,3 @@ - - # 添加编译的目标文件 zadd_executable_simple( TARGET diff --git a/buildtools b/buildtools index a1cb271..b613bfa 160000 --- a/buildtools +++ b/buildtools @@ -1 +1 @@ -Subproject commit a1cb2710c928ec2fb36fc944f592303b0118e227 +Subproject commit b613bface153bc31adc4b005c5031d954049b1cd diff --git a/sh/envsetup.sh b/sh/envsetup.sh index 0368a4e..b3c25aa 100755 --- a/sh/envsetup.sh +++ b/sh/envsetup.sh @@ -4,9 +4,12 @@ # Config CONFIG_SUPPORT_ALSA=true CONFIG_SUPPORT_FFMPEG=true +CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS=true # Code Begin -cd ${PROJECT_PATH}/build +mkdir -p ${LIBSDIR} +cd ${LIBSDIR} + # 下载依赖库 # CONFIG_SUPPORT_ALSA @@ -45,5 +48,17 @@ if [ "$CONFIG_SUPPORT_FFMPEG" = true ]; then PUBLIC_INCLUDE_DIRECTORIES="${PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/ffmpeg/include" fi +# CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS +if [ "$CONFIG_SUPPORT_IFLYTOP_VOICE_PROCESS" = true ]; then + wget -c "http://iflytop.local:8021/zlibrelease/libiflytop_voice_process/libiflytop_voice_process_v1.0_aarch64_ubuntu18.04_static_0.tar.gz" + tar -xvf libiflytop_voice_process_v1.0_aarch64_ubuntu18.04_static_0.tar.gz >/dev/null + + rm -rf ${LIBSDIR}/libiflytop_voice_process + mv libiflytop_voice_process_v1.0_aarch64_ubuntu18.04_static_0 ${LIBSDIR}/libiflytop_voice_process + PUBLIC_LINK_DIRECTORIES="${PUBLIC_LINK_DIRECTORIES};${LIBSDIR}/libiflytop_voice_process/lib" + PUBLIC_INCLUDE_DIRECTORIES="${PUBLIC_INCLUDE_DIRECTORIES};${LIBSDIR}/libiflytop_voice_process/include" + PUBLIC_LINK_LIBS="${PUBLIC_LINK_LIBS};iflytopvoice;NE10_static" +fi + CROSS_TOOLCHAIN_C_COMPILER=aarch64-linux-gnu-gcc CROSS_TOOLCHAIN_CXX_COMPILER=aarch64-linux-gnu-g++ diff --git a/src/main.cpp b/src/main.cpp index 9788692..8fbf53c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,6 +16,7 @@ #include "zservice_container/zservice_container.hpp" #include "zwebservice/zwebservice.hpp" // +#include "audio_process_api.h" #include "service/device_io_service.hpp" #include "service/device_io_service_mock.hpp" #include "service/light_control_service.hpp" @@ -214,5 +215,42 @@ int Main::main(int argc, char *argv[]) { GET_SERVICE(MainControlService)->initialize(); logger->info("system setup end."); + + audio_aec_init(0); + audio_aec_process(NULL, NULL, NULL, NULL, NULL, NULL); + // void audio_aec_uninit(float *obj); + // float *audio_doa_init(0, float *coord_data, float location_range1, float location_range2); + // int audio_doa_process(float *obj, short *in_buff, int aec_state, int aec_farend, float *doa1, float *doa2, + // float *doa3, int *vad_stat); + // void audio_doa_uninit(float *audio_doa_obj); + // float *audio_gsc_init(0, float *coord_data); + // int audio_gsc_amb(float *obj, short *in_buff, int aec_state, int aec_farend, float dest_doa, float + // *location_obj, + // short *out_data, int *vad_stat); + // int audio_gsc_fixed(float *obj, short *in_buff, int aec_state, int aec_farend, float dest_doa, float int_doa, + // short *out_data, int *vad_stat); + // void audio_gsc_uninit(float *audio_gsc_obj); + // float *audio_ns_init(int mode); + // int audio_ns_process(float *audio_ns_obj, short *in_data, short *out_data, int aec_stat); + // void audio_ns_uninit(float *audio_ns_obj); + // float *audio_agc_init(int frame_len, int mode, float arg_val); + // int audio_agc_process(float *audio_agc_obj, short *in_data, short *out_data, int vad_stat, int aec_stat); + // void audio_agc_uninit(float *audio_agc_obj); + + audio_aec_uninit(NULL); + audio_doa_init(NULL, NULL, NULL, NULL); + audio_doa_process(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + audio_doa_uninit(NULL); + audio_gsc_init(NULL, NULL); + audio_gsc_amb(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + audio_gsc_fixed(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + audio_gsc_uninit(NULL); + audio_ns_init(NULL); + audio_ns_process(NULL, NULL, NULL, NULL); + audio_ns_uninit(NULL); + audio_agc_init(NULL, NULL, NULL); + audio_agc_process(NULL, NULL, NULL, NULL, NULL); + audio_agc_uninit(NULL); + while (true) sleep(1000); } diff --git a/src/test/test_voice_process.cpp b/src/test/test_voice_process.cpp new file mode 100644 index 0000000..e69de29