12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #include <iostream>
- #include <vector>
- #include <random>
- #include <nlohmann/json.hpp>
- #include "signalstats_wrapper.h"
- 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<double> 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<std::string> window_params = {"tukey", "0.25"};
-
- nlohmann::json& result = signalstats::detect_signal(
- 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
- output
- );
-
- // 处理输出结果
- 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;
- }
- signalstats_wrapper::finalize();
-
- return 0;
- }
|