MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / run_offline_batch

Function run_offline_batch

app/workflow/execution.cpp:47–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45 throw std::runtime_error("--batch-merge-audio must be none or concat");
46}
47
48AppBatchResult run_offline_batch(
49 engine::runtime::IVoiceTaskSession & session,
50 engine::runtime::IOfflineVoiceTaskSession & offline,
51 const AppBatchRequest & batch,
52 AudioMergeMode audio_merge_mode,
53 const std::function<void(size_t, const AppRequestResult &)> & on_result) {
54 if (batch.requests.empty()) {
55 throw std::runtime_error("offline batch requires at least one request");
56 }
57 using Clock = std::chrono::steady_clock;
58 const auto to_ms = [](Clock::duration d) {
59 return std::chrono::duration<double, std::milli>(d).count();
60 };
61 const auto session_start = Clock::now();
62
63 const auto prepare_start = Clock::now();
64 session.prepare(engine::runtime::build_preparation_request(batch.requests.front().request));
65 AppBatchResult out;
66 out.prepare_ms = to_ms(Clock::now() - prepare_start);
67 out.results.reserve(batch.requests.size());
68 for (const auto & item : batch.requests) {
69 const auto run_start = Clock::now();
70 auto result = offline.run(item.request);
71 const double wall_ms = to_ms(Clock::now() - run_start);
72 out.results.push_back(AppRequestResult{
73 item.id,
74 std::move(result),
75 wall_ms,

Callers 1

mainFunction · 0.85

Calls 6

concat_audio_outputsFunction · 0.85
emptyMethod · 0.45
prepareMethod · 0.45
sizeMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected