Tele-AI / TeleSpeech-ASR

548 stars 47 forks source link

mfcc特征处理 #18

Open oslijunw opened 5 months ago

oslijunw commented 5 months ago

如果我用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 ) 这样能对其吧

TTTdas commented 5 months ago

其中n_mfcc=40。另外窗函数上使用的是povey窗,这个librosa是不支持的,可能需要手动实现一个自定义的povey窗

oslijunw commented 5 months ago

假如我直接使用pykaldi,只要用了mfcc.conf抽取的mfcc特征应该能起到一样的效果吧 @TTTdas

csukuangfj commented 5 months ago
  1. 用 librosa 是不可以的。里面的 mel scale 处理方法,和 kaldi 不一样.

  2. 推荐使用 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

然后参考 https://github.com/csukuangfj/kaldi-native-fbank/blob/master/kaldi-native-fbank/python/tests/test_online_mfcc.py

faker-bert commented 5 months ago
  1. 用 librosa 是不可以的。里面的 mel scale 处理方法,和 kaldi 不一样.

  2. 推荐使用 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

然后参考

https://github.com/csukuangfj/kaldi-native-fbank/blob/master/kaldi-native-fbank/python/tests/test_online_mfcc.py

直接用kaldi镜像做服务化处理也可以

csukuangfj commented 5 months ago
Screenshot 2024-06-04 at 13 10 00

https://pypi.org/project/kaldi-native-fbank/#files

kaldi-native-fbank 编译好的 whl, 只有几百 KB.

Python 包,除了 numpy, 就没有其他的依赖了.

如果需要轻量化部署,推荐 kaldi-native-fbank.