|
43 | 43 | constexpr size_t k_seed_default = 99; |
44 | 44 | constexpr size_t k_audio_len_sec_default = 10; |
45 | 45 | constexpr size_t k_num_steps_default = 8; |
46 | | -const std::string k_output_file_default = "output.wav"; |
47 | 46 |
|
48 | 47 | // -- Update the tensor index based on your model configuration. |
49 | 48 | constexpr size_t k_t5_ids_in_idx = 0; |
@@ -85,13 +84,23 @@ static void print_usage(const char *name) { |
85 | 84 | " -s <seed> (Optional) Random seed for reproducibility. Different seeds generate different audio samples (Default: %zu)\n" |
86 | 85 | " -l <audio_len_sec> (Optional) Length of generated audio (Default: %zu s)\n" |
87 | 86 | " -n <num_steps> (Optional) Number of steps (Default: %zu)\n" |
88 | | - " -o <output_file> (Optional) Output audio file name (Default: %s)\n" |
| 87 | + " -o <output_file> (Optional) Output audio file name (Default: <prompt>_<seed>.wav)\n" |
89 | 88 | " -h Show this help message\n", |
90 | 89 | name, |
91 | 90 | k_seed_default, |
92 | 91 | k_audio_len_sec_default, |
93 | | - k_num_steps_default, |
94 | | - k_output_file_default.c_str()); |
| 92 | + k_num_steps_default); |
| 93 | +} |
| 94 | + |
| 95 | +static std::string get_filename(std::string prompt, size_t seed) { |
| 96 | + // Convert spaces to underscores |
| 97 | + std::replace(prompt.begin(), prompt.end(), ' ', '_'); |
| 98 | + |
| 99 | + // Convert to lowercase |
| 100 | + std::transform(prompt.begin(), prompt.end(), prompt.begin(), |
| 101 | + [](unsigned char c) { return std::tolower(c); }); |
| 102 | + |
| 103 | + return prompt + "_" + std::to_string(seed) + ".wav"; |
95 | 104 | } |
96 | 105 |
|
97 | 106 | static std::vector<int32_t> convert_prompt_to_ids(const std::string& prompt, const std::string& spiece_model_path) { |
@@ -220,7 +229,7 @@ int main(int32_t argc, char** argv) { |
220 | 229 | std::string prompt = ""; |
221 | 230 | size_t num_threads = 0; |
222 | 231 | // Optional arguments |
223 | | - std::string output_file = k_output_file_default; |
| 232 | + std::string output_file = ""; |
224 | 233 | size_t seed = k_seed_default; |
225 | 234 | size_t num_steps = k_num_steps_default; |
226 | 235 | float audio_len_sec = static_cast<float>(k_audio_len_sec_default); |
@@ -436,6 +445,11 @@ int main(int32_t argc, char** argv) { |
436 | 445 | const float* left_ch = autoencoder_out_data; |
437 | 446 | const float* right_ch = autoencoder_out_data + num_audio_samples; |
438 | 447 |
|
| 448 | + // If output filename empty -> filename = <prompt>_<seed>.wav |
| 449 | + if (output_file.empty()) { |
| 450 | + output_file = get_filename(prompt, seed); |
| 451 | + } |
| 452 | + |
439 | 453 | save_as_wav(output_file.c_str(), left_ch, right_ch, num_audio_samples); |
440 | 454 |
|
441 | 455 | // Save the file |
|
0 commit comments