#include #include #include #include #include "signalstats_wrapper.h" #include "ThreadPool.h" void test1(); void test2(); int main() { // 初始化Python解释器 // signalstats_wrapper::initialize(); // try { // // 创建测试音频信号 (C++版本) // const int sample_rate = 44100; // const int duration_seconds = 1; // const int num_samples = sample_rate * duration_seconds; // std::vector audio_signal(num_samples); // std::random_device rd; // std::mt19937 gen(rd()); // std::normal_distribution<> dist(0.0, 1.0); // for (auto& sample : audio_signal) { // sample = dist(gen); // } // std::cout << "生成测试音频信号完成" << std::endl; // // 调用C++接口函数 // nlohmann::json output; // std::vector window_params = {"tukey", "0.25"}; // nlohmann::json& result = signalstats_wrapper::detect_signal_wrapper( // output, // audio_signal, // sample_rate, // 3e-3, // silence_threshold // -70.0, // db_threshold // -70.0, // cv_threshold // window_params, // 256, // nperseg // 32, // noverlap // 256, // nfft // true // debug // ); // // 处理输出结果 // if (!output.empty()) { // std::cout << "信号检测完成,输出结果: " << output.dump(4) << std::endl; // // 这里可以添加具体的结果解析逻辑 // } else { // std::cout << "信号检测完成,但无输出结果" << std::endl; // } // std::cout << "程序执行完成" << std::endl; // } catch (const std::exception& e) { // std::cerr << "错误: " << e.what() << std::endl; // return 1; // } // test1(); // 初始化Python解释器 // signalstats_wrapper::initialize(); CPPTP.add_task(test1); // std::this_thread::sleep_for(std::chrono::seconds(1)); CPPTP.add_task(test2); // std::this_thread::sleep_for(std::chrono::seconds(5)); std::this_thread::sleep_for(std::chrono::seconds(10)); // 等待任务执行 // signalstats_wrapper::finalize(); return 0; } void test1() { signalstats_wrapper::initialize(); try { // 创建测试音频信号 (C++版本) const int sample_rate = 44100; const int duration_seconds = 1; const int num_samples = sample_rate * duration_seconds; std::vector audio_signal(num_samples); std::random_device rd; std::mt19937 gen(rd()); std::normal_distribution<> dist(0.0, 1.0); for (auto& sample : audio_signal) { sample = dist(gen); } std::cout << "生成测试音频信号完成" << std::endl; // 调用C++接口函数 nlohmann::json output; std::vector window_params = {"tukey", "0.25"}; nlohmann::json& result = signalstats_wrapper::detect_signal_wrapper( output, audio_signal, sample_rate, 3e-3, // silence_threshold -70.0, // db_threshold -70.0, // cv_threshold window_params, 256, // nperseg 32, // noverlap 256, // nfft true // debug ); // 处理输出结果 if (!output.empty()) { std::cout << "信号检测完成,输出结果: " << output.dump(4) << std::endl; // 这里可以添加具体的结果解析逻辑 } else { std::cout << "信号检测完成,但无输出结果" << std::endl; } std::cout << "程序执行完成" << std::endl; } catch (const std::exception& e) { std::cerr << "错误: " << e.what() << std::endl; return; } signalstats_wrapper::finalize(); } void test2() { signalstats_wrapper::initialize(); try { // 创建测试音频信号 (C++版本) const int sample_rate = 44100; const int duration_seconds = 1; const int num_samples = sample_rate * duration_seconds; std::vector audio_signal(num_samples); std::random_device rd; std::mt19937 gen(rd()); std::normal_distribution<> dist(0.0, 1.0); for (auto& sample : audio_signal) { sample = dist(gen); } std::cout << "生成测试音频信号完成" << std::endl; // 调用C++接口函数 nlohmann::json output; std::vector window_params = {"tukey", "0.25"}; nlohmann::json& result = signalstats_wrapper::detect_signal_wrapper( output, audio_signal, sample_rate, 3e-3, // silence_threshold -70.0, // db_threshold -70.0, // cv_threshold window_params, 256, // nperseg 32, // noverlap 256, // nfft true // debug ); // 处理输出结果 if (!output.empty()) { std::cout << "信号检测完成,输出结果: " << output.dump(4) << std::endl; // 这里可以添加具体的结果解析逻辑 } else { std::cout << "信号检测完成,但无输出结果" << std::endl; } std::cout << "程序执行完成" << std::endl; } catch (const std::exception& e) { std::cerr << "错误: " << e.what() << std::endl; return; } signalstats_wrapper::finalize(); }