(&self, src_orig: &Tensor, processed: &Tensor)
| 41 | } |
| 42 | |
| 43 | fn forward(&self, src_orig: &Tensor, processed: &Tensor) -> Result<Tensor> { |
| 44 | // Python: output = src_orig + (processed - src_orig) * bypass_scale |
| 45 | // bypass_scale is the weight on the non-residual (processed) path |
| 46 | let scale = self.bypass_scale.unsqueeze(0)?.unsqueeze(0)?; |
| 47 | let diff = (processed - src_orig)?; |
| 48 | let out = (src_orig + diff.broadcast_mul(&scale)?)?; |
| 49 | Ok(out) |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | /// SimpleDownsample: weighted average over groups of `ds` frames using learned softmax weights. |