use crate::{Graph, NodeId, Op};
impl Graph {
pub fn log_mel(&mut self, spectrum: NodeId, filters: NodeId) -> NodeId {
let spec_shape = self.shape(spectrum).clone();
let filt_shape = self.shape(filters).clone();
let out = crate::audio::log_mel_output_shape(&spec_shape, &filt_shape)
.unwrap_or_else(|e| panic!("log_mel shape error: {e}"));
self.push(Op::LogMel, vec![spectrum, filters], out, None)
}
pub fn log_mel_backward(&mut self, spectrum: NodeId, filters: NodeId, dy: NodeId) -> NodeId {
let spec_shape = self.shape(spectrum).clone();
self.push(
Op::LogMelBackward,
vec![spectrum, filters, dy],
spec_shape,
None,
)
}
}