#pragma once #include "engine/models/seed_vc/assets.h" #include #include namespace engine::models::seed_vc { struct SeedVcMelSpectrogramOutput { std::vector mel; int64_t channels = 0; int64_t frames = 0; }; struct SeedVcCampplusFbankOutput { std::vector features; int64_t frames = 0; int64_t dims = 0; }; struct SeedVcPreparedAudio { std::vector waveform_22k; std::vector waveform_16k; }; struct SeedVcPreparedAudioForSampleRate { std::vector waveform; std::vector waveform_16k; }; SeedVcPreparedAudio seed_vc_prepare_audio( const std::vector & samples, int sample_rate, int channels, int64_t max_22k_samples = 0); SeedVcPreparedAudioForSampleRate seed_vc_prepare_audio_for_sample_rate( const std::vector & samples, int sample_rate, int channels, int output_sample_rate, int64_t max_output_samples = 0); SeedVcMelSpectrogramOutput compute_seed_vc_mel_spectrogram( const std::vector & waveform, const SeedVcMelConfig & config, size_t threads); SeedVcCampplusFbankOutput compute_seed_vc_campplus_fbank_16k(const std::vector & waveform_16k); } // namespace engine::models::seed_vc