chroma#
- class diffsptk.ChromaFilterBankAnalysis(n_channel, fft_length, sample_rate, norm=inf, use_power=True)[source]#
Chroma-filter bank analysis.
- Parameters:
- n_channelint >= 1
Number of chroma-filter banks, \(C\).
- fft_lengthint >= 2
Number of FFT bins, \(L\).
- sample_rateint >= 1
Sample rate in Hz.
- normfloat
Normalization factor.
- use_powerbool
If True, use power spectrum instead of amplitude spectrum.
- forward(x)[source]#
Apply chroma-filter banks to STFT.
- Parameters:
- xTensor [shape=(…, L/2+1)]
Power spectrum.
- Returns:
- outTensor [shape=(…, C)]
Chroma-filter bank output.
Examples
>>> sr = 16000 >>> x = diffsptk.sin(500, period=sr/440) >>> stft = diffsptk.STFT(frame_length=512, frame_period=512, fft_length=512) >>> chroma = diffsptk.ChromaFilterBankAnalysis(12, 512, sr) >>> y = chroma(stft(x)) >>> y tensor([[0.1146, 0.0574, 0.0457, 0.0468, 0.0519, 0.0789, 0.1736, 0.4285, 0.7416, 1.0000, 0.7806, 0.3505]])
- diffsptk.functional.chroma(x, n_channel, sample_rate, norm=inf)[source]#
Apply chroma-filter banks to STFT.
- Parameters:
- xTensor [shape=(…, L/2+1)]
Power spectrum.
- n_channelint >= 1
Number of chroma-filter banks, \(C\).
- sample_rateint >= 1
Sample rate in Hz.
- normfloat
Normalization factor.
- Returns:
- outTensor [shape=(…, C)]
Chroma-filter bank output.