| 131 | } |
| 132 | |
| 133 | std::vector<float> add_embeddings( |
| 134 | const VibeVoiceConnectorOutput & lhs, |
| 135 | const VibeVoiceConnectorOutput & rhs) { |
| 136 | if (lhs.frames != rhs.frames || lhs.hidden_size != rhs.hidden_size || lhs.values.size() != rhs.values.size()) { |
| 137 | throw std::runtime_error("VibeVoice generated embedding connector outputs have mismatched shapes"); |
| 138 | } |
| 139 | std::vector<float> out(lhs.values.size(), 0.0F); |
| 140 | for (size_t i = 0; i < out.size(); ++i) { |
| 141 | out[i] = lhs.values[i] + rhs.values[i]; |
| 142 | } |
| 143 | return out; |
| 144 | } |
| 145 | |
| 146 | std::vector<float> single_token_embedding( |
| 147 | const VibeVoiceDecoderWeightsRuntime & decoder, |
no test coverage detected