(
self,
n_fft: int = 512,
hop_length: int | None = 512,
win_length: int | None = None,
window: _WindowLiteral = 'hann',
power: float = 1.0,
center: bool = True,
pad_mode: Literal['reflect'] = 'reflect',
dtype: str = 'float32',
)
| 84 | fft_window: Tensor |
| 85 | |
| 86 | def __init__( |
| 87 | self, |
| 88 | n_fft: int = 512, |
| 89 | hop_length: int | None = 512, |
| 90 | win_length: int | None = None, |
| 91 | window: _WindowLiteral = 'hann', |
| 92 | power: float = 1.0, |
| 93 | center: bool = True, |
| 94 | pad_mode: Literal['reflect'] = 'reflect', |
| 95 | dtype: str = 'float32', |
| 96 | ) -> None: |
| 97 | super().__init__() |
| 98 | |
| 99 | assert power > 0, 'Power of spectrogram must be > 0.' |
| 100 | self.power = power |
| 101 | |
| 102 | if win_length is None: |
| 103 | win_length = n_fft |
| 104 | |
| 105 | self.fft_window = get_window( |
| 106 | window, win_length, fftbins=True, dtype=dtype |
| 107 | ) |
| 108 | self._stft = partial( |
| 109 | paddle.signal.stft, |
| 110 | n_fft=n_fft, |
| 111 | hop_length=hop_length, |
| 112 | win_length=win_length, |
| 113 | window=self.fft_window, |
| 114 | center=center, |
| 115 | pad_mode=pad_mode, |
| 116 | ) |
| 117 | self.register_buffer('fft_window', self.fft_window) |
| 118 | |
| 119 | def forward(self, x: Tensor) -> Tensor: |
| 120 | """ |
nothing calls this directly
no test coverage detected