#pragma once #include "engine/framework/runtime/session.h" #include #include #include #include #include #include namespace minitts::app { struct AppRequest { std::string id; engine::runtime::TaskRequest request; }; struct AppRequestResult { std::string id; engine::runtime::TaskResult result; double wall_ms = 0.0; }; struct AudioChapter { std::string id; int64_t start_sample = 0; int64_t end_sample = 0; }; struct AppBatchRequest { std::vector requests; }; struct AppBatchResult { std::vector results; std::optional merged_audio; std::vector chapters; double prepare_ms = 0.0; double session_wall_ms = 0.0; }; enum class AudioMergeMode { None, Concat, }; AudioMergeMode parse_audio_merge_mode(const std::string & value); AppBatchResult run_offline_batch( engine::runtime::IVoiceTaskSession & session, engine::runtime::IOfflineVoiceTaskSession & offline, const AppBatchRequest & batch, AudioMergeMode audio_merge_mode, const std::function & on_result = {}); } // namespace minitts::app