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

Function write_clipped_wav

tests/perf/model_perf.cpp:151–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

149}
150
151std::filesystem::path write_clipped_wav(
152 const std::filesystem::path & source_path,
153 const std::filesystem::path & temp_dir,
154 double seconds) {
155 const auto audio = minitts::cli::read_audio_buffer(source_path);
156 const int64_t frame_limit = static_cast<int64_t>(seconds * static_cast<double>(audio.sample_rate));
157 const int64_t sample_limit = std::max<int64_t>(
158 1,
159 std::min<int64_t>(
160 static_cast<int64_t>(audio.samples.size()),
161 frame_limit * static_cast<int64_t>(audio.channels)));
162 std::vector<float> clipped(
163 audio.samples.begin(),
164 audio.samples.begin() + static_cast<std::ptrdiff_t>(sample_limit));
165 const auto target = temp_dir / source_path.filename();
166 engine::audio::WavPcm16Sink().write(
167 target,
168 engine::audio::AudioBuffer{
169 audio.sample_rate,
170 audio.channels,
171 std::move(clipped),
172 });
173 return target;
174}
175
176JsonValue clip_audio_path_field(
177 const JsonValue & value,

Callers 1

clip_audio_path_fieldFunction · 0.70

Calls 5

WavPcm16SinkClass · 0.85
read_audio_bufferFunction · 0.50
sizeMethod · 0.45
beginMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected