Encode voice reference audio tensor to scaled acoustic features. Returns: (acoustic_features, connected_embeds)
(&self, audio: &Tensor)
| 328 | /// Encode voice reference audio tensor to scaled acoustic features. |
| 329 | /// Returns: (acoustic_features, connected_embeds) |
| 330 | fn encode_voice_reference(&self, audio: &Tensor) -> Result<(Tensor, Tensor)> { |
| 331 | // Encode through acoustic encoder: (batch, samples) → (batch, frames, vae_dim) |
| 332 | let latents = self.acoustic_encoder.encode(audio)?; |
| 333 | |
| 334 | // Apply scaling: features = (latents + bias) * scale |
| 335 | let scale = self.speech_scaling_factor.to_dtype(self.dtype)?; |
| 336 | let bias = self.speech_bias_factor.to_dtype(self.dtype)?; |
| 337 | let features = (latents.broadcast_add(&bias)?.broadcast_mul(&scale))?; |
| 338 | |
| 339 | // Connect to LM hidden space |
| 340 | let connected = self.acoustic_connector.forward(&features)?; |
| 341 | |
| 342 | Ok((features, connected)) |
| 343 | } |
| 344 | |
| 345 | /// Sample speech latent with CFG using DPM-Solver++. |
| 346 | fn sample_speech_latent( |
no test coverage detected