Open oslijunw opened 5 months ago
其中n_mfcc=40。另外窗函数上使用的是povey窗,这个librosa是不支持的,可能需要手动实现一个自定义的povey窗
假如我直接使用pykaldi,只要用了mfcc.conf抽取的mfcc特征应该能起到一样的效果吧 @TTTdas
用 librosa 是不可以的。里面的 mel scale 处理方法,和 kaldi 不一样.
推荐使用 https://github.com/csukuangfj/kaldi-native-fbank 和 kaldi 完全兼容,因为底层c++ 代码,就是完全 copy 自 kaldi, 但是不依赖 Kaldi. kaldi-native-fbank 提供 c++ 和 python api. 已经在 sherpa-onnx 验证过,支持 linux/windows/macos/android/ios/树莓派/arm64/arm32/riscv64 等
使用方法
pip install kaldi-native-fbank>=1.19.3
用 librosa 是不可以的。里面的 mel scale 处理方法,和 kaldi 不一样.
推荐使用 https://github.com/csukuangfj/kaldi-native-fbank 和 kaldi 完全兼容,因为底层c++ 代码,就是完全 copy 自 kaldi, 但是不依赖 Kaldi. kaldi-native-fbank 提供 c++ 和 python api. 已经在 sherpa-onnx 验证过,支持 linux/windows/macos/android/ios/树莓派/arm64/arm32/riscv64 等
使用方法
pip install kaldi-native-fbank>=1.19.3
然后参考
直接用kaldi镜像做服务化处理也可以
https://pypi.org/project/kaldi-native-fbank/#files
kaldi-native-fbank 编译好的 whl, 只有几百 KB.
Python 包,除了 numpy, 就没有其他的依赖了.
如果需要轻量化部署,推荐 kaldi-native-fbank.
如果我用librosa 进行特征抽取
--use-energy=false # use average of log energy, not energy.
--sample-frequency=16000 # Switchboard is sampled at 8kHz
--num-mel-bins=40 # similar to Google's setup.
--num-ceps=40 # there is no dimensionality reduction.
--low-freq=40 # low cutoff frequency for mel bins
--high-freq=-200 # high cutoff frequently, relative to Nyquist of 8000 (=3800)
mfccs = librosa.feature.mfcc( y, n_mels=40, fmin=40, fmax=3800, sr=16000, n_mfcc=60 ) 这样能对其吧