Module: Awaaz::Utils::Resample
- Defined in:
- lib/awaaz/utils/resample.rb
Overview
Note:
This module is intended for internal use, but ‘read_and_resample` is public for advanced users who need manual resampling.
Resample utilities for audio data represented as Numo::NArray. Wraps the ‘libsamplerate` bindings provided by Extensions::Samplerate.
Class Method Summary collapse
-
.read_and_resample(input_samples, input_rate, output_rate, channels, sampling_option: :sinc_fastest) ⇒ Numo::SFloat
Resamples a Numo::SFloat array of audio samples from one sample rate to another.
Class Method Details
.read_and_resample(input_samples, input_rate, output_rate, channels, sampling_option: :sinc_fastest) ⇒ Numo::SFloat
Resamples a Numo::SFloat array of audio samples from one sample rate to another.
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/awaaz/utils/resample.rb', line 35 def read_and_resample(input_samples, input_rate, output_rate, channels, sampling_option: :sinc_fastest) return input_samples if input_rate == output_rate validate_inputs(input_samples) ratio = calculate_ratio(input_rate, output_rate) input_ptr, output_ptr, input_frames, output_frames = prepare_memory(input_samples, ratio, channels) data = build_src_data(input_ptr, output_ptr, input_frames, output_frames, ratio) perform_resampling(data, sampling_option, channels) convert_to_numo(output_ptr, data[:output_frames_gen] * channels) end |