#pragma once #include "execution.h" #include "engine/framework/audio/wav_writer.h" #include #include #include #include #include namespace minitts::app { struct AudioMetricsInfo { int sample_rate = 0; int channels = 0; size_t samples = 0; }; struct FileOutputPolicy { std::optional audio_out; std::optional output_dir; std::optional segments_base; std::optional turns_base; std::optional words_base; std::optional batch_manifest_out; engine::audio::WavWriteOptions wav_options{}; }; std::string safe_output_name(const std::string & value); std::string word_timestamps_to_json(const std::vector & words); void emit_task_result( const engine::runtime::TaskResult & result, const std::optional & audio_out, const std::optional & audio_out_dir, const std::optional & artifact_out_dir, const std::optional & segments_out, const std::optional & turns_out, const std::optional & words_out, const engine::audio::WavWriteOptions & wav_options = {}); void emit_task_metrics( const engine::runtime::TaskResult & result, const std::optional & input_audio, double wall_ms, const std::string & prefix = "metrics"); void emit_batch_item_result( size_t index, const AppRequestResult & item, const FileOutputPolicy & policy); void emit_batch_summary( const AppBatchResult & batch, const FileOutputPolicy & policy); void emit_batch_result( const AppBatchResult & batch, const FileOutputPolicy & policy); } // namespace minitts::app