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

Function emit_task_result

app/workflow/file_sink.cpp:204–312  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

202}
203
204void emit_task_result(
205 const engine::runtime::TaskResult & result,
206 const std::optional<std::filesystem::path> & audio_out,
207 const std::optional<std::filesystem::path> & audio_out_dir,
208 const std::optional<std::filesystem::path> & artifact_out_dir,
209 const std::optional<std::filesystem::path> & segments_out,
210 const std::optional<std::filesystem::path> & turns_out,
211 const std::optional<std::filesystem::path> & words_out) {
212 if (result.audio_output.has_value() && audio_out.has_value()) {
213 write_wav_output(*audio_out, engine::audio::AudioBuffer{
214 result.audio_output->sample_rate,
215 result.audio_output->channels,
216 result.audio_output->samples,
217 });
218 std::cout << "audio_out=" << audio_out->string() << "\n";
219 } else if (!result.named_audio_outputs.empty() && audio_out.has_value()) {
220 if (result.named_audio_outputs.size() != 1) {
221 throw std::runtime_error("--out requires exactly one audio output");
222 }
223 const auto & audio = result.named_audio_outputs.front().audio;
224 write_wav_output(*audio_out, engine::audio::AudioBuffer{
225 audio.sample_rate,
226 audio.channels,
227 audio.samples,
228 });
229 std::cout << "audio_out=" << audio_out->string() << "\n";
230 }
231
232 if (!result.named_audio_outputs.empty()) {
233 if (audio_out_dir.has_value()) {
234 std::filesystem::create_directories(*audio_out_dir);
235 for (const auto & output : result.named_audio_outputs) {
236 const auto path = *audio_out_dir / (output.id + ".wav");
237 write_wav_output(path, engine::audio::AudioBuffer{
238 output.audio.sample_rate,
239 output.audio.channels,
240 output.audio.samples,
241 });
242 std::cout << "audio_out[" << output.id << "]=" << path.string() << "\n";
243 }
244 } else {
245 std::cout << "audio_outputs=" << result.named_audio_outputs.size() << "\n";
246 for (const auto & output : result.named_audio_outputs) {
247 std::cout << "audio_output_id=" << output.id
248 << " sample_rate=" << output.audio.sample_rate
249 << " channels=" << output.audio.channels
250 << " samples=" << output.audio.samples.size()
251 << "\n";
252 }
253 }
254 }
255
256 if (!result.speech_segments.empty()) {
257 const auto json = speech_segments_to_json(result.speech_segments);
258 if (segments_out.has_value()) {
259 if (!segments_out->parent_path().empty()) {
260 std::filesystem::create_directories(segments_out->parent_path());
261 }

Callers 5

run_streamingFunction · 0.85
mainFunction · 0.85
run_model_step_implFunction · 0.85
run_model_step_foreachFunction · 0.85
emit_batch_item_resultFunction · 0.85

Calls 9

write_wav_outputFunction · 0.85
speech_segments_to_jsonFunction · 0.85
speaker_turns_to_jsonFunction · 0.85
word_timestamps_to_jsonFunction · 0.85
artifact_kind_nameFunction · 0.85
safe_output_nameFunction · 0.85
artifact_to_jsonFunction · 0.85
emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected