| 36 | } |
| 37 | |
| 38 | engine::runtime::TaskRequest make_request(const engine::io::json::Value & object) { |
| 39 | const auto text = engine::io::json::require_string(object, "text"); |
| 40 | const auto language = engine::io::json::optional_string(object, "language", "en"); |
| 41 | if (text.empty()) { |
| 42 | throw std::runtime_error("Supertonic warmbench request text is empty"); |
| 43 | } |
| 44 | engine::runtime::TaskRequest request; |
| 45 | request.text_input = engine::runtime::Transcript{text, language}; |
| 46 | engine::runtime::VoiceCondition voice; |
| 47 | engine::runtime::VoiceReference speaker; |
| 48 | speaker.cached_voice_id = engine::io::json::optional_string(object, "voice", "M1"); |
| 49 | voice.speaker = std::move(speaker); |
| 50 | request.voice = std::move(voice); |
| 51 | set_optional_option(request, object, "voice", "supertonic.voice"); |
| 52 | set_optional_option(request, object, "total_steps", "num_inference_steps"); |
| 53 | set_optional_option(request, object, "num_inference_steps", "num_inference_steps"); |
| 54 | set_optional_option(request, object, "speed", "speaking_rate"); |
| 55 | set_optional_option(request, object, "speaking_rate", "speaking_rate"); |
| 56 | set_optional_option(request, object, "seed", "seed"); |
| 57 | return request; |
| 58 | } |
| 59 |
no test coverage detected