voice_audio_multi/include/engine/models/miocodec/session.h
Fabio c36510c21e
Some checks failed
Linux Build / Linux cpu (push) Has been cancelled
Linux Build / Linux cpu-clang (push) Has been cancelled
Linux Build / Linux vulkan (push) Has been cancelled
mac-build / macOS CPU (push) Has been cancelled
Nix Build / Nix (cpu) (push) Has been cancelled
Nix Build / Nix (vulkan) (push) Has been cancelled
windows-build / Windows CPU (push) Has been cancelled
Initial import: audio.cpp with Orange Pi documentation
2026-11-04 19:05:22 +01:00

54 lines
1.8 KiB
C++

#pragma once
#include "engine/framework/runtime/session.h"
#include "engine/framework/runtime/session_base.h"
#include <memory>
namespace engine::modules {
class WavlmEncoderComponent;
}
namespace engine::models::miocodec {
struct MioCodecAssets;
struct MioCodecWeights;
class MioCodecContentEncoderRuntime;
class MioCodecGlobalEncoderRuntime;
class MioCodecGlobalReferenceEncoder;
class MioCodecWaveDecoderRuntime;
class MioCodecWaveformReconstructor;
class MioCodecSslFeatureExtractor;
class MioCodecSession final
: public runtime::RuntimeSessionBase,
public runtime::IOfflineVoiceTaskSession {
public:
MioCodecSession(
const runtime::TaskSpec & task,
const runtime::SessionOptions & options,
std::shared_ptr<const MioCodecAssets> assets);
~MioCodecSession() override;
std::string family() const override;
runtime::VoiceTaskKind task_kind() const override;
runtime::RunMode run_mode() const override;
void prepare(const runtime::SessionPreparationRequest & request) override;
runtime::TaskResult run(const runtime::TaskRequest & request) override;
const std::shared_ptr<const MioCodecWeights> & codec_weights() const noexcept;
const engine::modules::WavlmEncoderComponent & wavlm() const noexcept;
private:
runtime::TaskSpec task_;
std::shared_ptr<const MioCodecAssets> assets_;
std::shared_ptr<const MioCodecWeights> codec_weights_;
std::unique_ptr<MioCodecSslFeatureExtractor> local_ssl_;
std::unique_ptr<MioCodecGlobalReferenceEncoder> global_reference_;
std::unique_ptr<MioCodecContentEncoderRuntime> content_encoder_;
std::unique_ptr<MioCodecGlobalEncoderRuntime> global_encoder_;
std::unique_ptr<MioCodecWaveDecoderRuntime> wave_decoder_;
std::unique_ptr<MioCodecWaveformReconstructor> waveform_reconstructor_;
};
} // namespace engine::models::miocodec