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

Function run_flow_chunk

src/models/heartmula/codec.cpp:1596–1654  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1594 if (static_cast<int64_t>(true_latents.size()) != latent_length * config.out_channels) {
1595 throw std::runtime_error("HeartCodec true-latent payload shape mismatch");
1596 }
1597 for (int64_t t = 0; t < incontext_length; ++t) {
1598 std::copy(
1599 true_latents.begin() + static_cast<std::ptrdiff_t>(t * config.out_channels),
1600 true_latents.begin() + static_cast<std::ptrdiff_t>((t + 1) * config.out_channels),
1601 incontext.begin() + static_cast<std::ptrdiff_t>(t * config.out_channels));
1602 }
1603 auto solved = solve_euler(
1604 runtime,
1605 std::move(latents),
1606 incontext,
1607 incontext_length,
1608 conditioning.values,
1609 num_steps,
1610 guidance_scale);
1611 for (int64_t t = 0; t < incontext_length; ++t) {
1612 std::copy(
1613 incontext.begin() + static_cast<std::ptrdiff_t>(t * config.out_channels),
1614 incontext.begin() + static_cast<std::ptrdiff_t>((t + 1) * config.out_channels),
1615 solved.begin() + static_cast<std::ptrdiff_t>(t * config.out_channels));
1616 }
1617 return solved;
1618}
1619
1620std::vector<float> latent_btc_to_scalar_bct(const std::vector<float> & latent_btc, int64_t frames) {
1621 const int64_t channels = 2;
1622 const int64_t latent_hidden = 128;
1623 if (static_cast<int64_t>(latent_btc.size()) != frames * channels * latent_hidden) {
1624 throw std::runtime_error("HeartCodec latent reshape payload mismatch");
1625 }
1626 std::vector<float> out(static_cast<size_t>(channels * latent_hidden * frames), 0.0F);
1627 for (int64_t t = 0; t < frames; ++t) {
1628 for (int64_t stream = 0; stream < channels; ++stream) {
1629 for (int64_t dim = 0; dim < latent_hidden; ++dim) {
1630 const size_t src = static_cast<size_t>(t * channels * latent_hidden + stream * latent_hidden + dim);
1631 const size_t dst = static_cast<size_t>((stream * latent_hidden + dim) * frames + t);
1632 out[dst] = latent_btc[src];
1633 }
1634 }
1635 }
1636 return out;
1637}
1638
1639std::vector<float> decoded_batch_to_stereo(
1640 const HeartCodecDecodedAudio & decoded,
1641 int64_t samples) {
1642 if (decoded.batch_size != 2 || decoded.channels != 1 || decoded.samples < samples) {
1643 throw std::runtime_error("HeartCodec scalar decoder output shape mismatch");
1644 }
1645 std::vector<float> out(static_cast<size_t>(2 * samples), 0.0F);
1646 for (int64_t ch = 0; ch < 2; ++ch) {
1647 std::copy(
1648 decoded.values.begin() + static_cast<std::ptrdiff_t>(ch * decoded.samples),
1649 decoded.values.begin() + static_cast<std::ptrdiff_t>(ch * decoded.samples + samples),
1650 out.begin() + static_cast<std::ptrdiff_t>(ch * samples));
1651 }
1652 return out;
1653}

Callers 1

detokenize_codesMethod · 0.85

Calls 7

copyFunction · 0.85
solve_eulerFunction · 0.85
build_conditioningMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected