MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ extract_zero_crossing_regions() [2/2]

MAYAFLUX_API std::vector< double > MayaFlux::extract_zero_crossing_regions ( const std::vector< double > &  data,
double  threshold,
size_t  region_size 
)

Extract zero crossing regions from single-channel data.

Parameters
dataInput audio data
thresholdMinimum amplitude difference for zero crossing detection (default: 0.0)
region_sizeSize of each region in samples (default: 1024)
Returns
Vector of zero crossing regions

Definition at line 798 of file Yantra.cpp.

799{
800 static const auto s_op = [] {
801 auto e = std::make_shared<Yantra::FeatureExtractor<>>();
802 e->set_extraction_method(Yantra::ExtractionMethod::ZERO_CROSSING_DATA);
803 e->set_parameter("min_distance", 1.0);
804 return e;
805 }();
806 s_op->set_parameter("threshold", threshold);
807 s_op->set_parameter("region_size", static_cast<uint32_t>(region_size));
808 Yantra::Datum<std::vector<Kakshya::DataVariant>> input { { Kakshya::DataVariant(data) } };
809 return s_op->apply_operation(input).data[0];
810}

References MayaFlux::Yantra::Datum< T >::data, and MayaFlux::Yantra::ZERO_CROSSING_DATA.