mirror of
https://github.com/csukuangfj/kaldifeat.git
synced 2025-08-10 10:32:16 +00:00
181 lines
4.3 KiB
Python
Executable File
181 lines
4.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Copyright (c) 2021 Xiaomi Corporation (authors: Fangjun Kuang)
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
cur_dir = Path(__file__).resolve().parent
|
|
kaldi_feat_dir = cur_dir.parent.parent.parent
|
|
|
|
|
|
import torch
|
|
|
|
sys.path.insert(0, f"{kaldi_feat_dir}/build/lib")
|
|
|
|
import kaldifeat
|
|
|
|
|
|
def test_frame_extraction_options():
|
|
opts = kaldifeat.FrameExtractionOptions()
|
|
opts.samp_freq = 220500
|
|
opts.frame_shift_ms = 15
|
|
opts.frame_length_ms = 40
|
|
opts.dither = 0.1
|
|
opts.preemph_coeff = 0.98
|
|
opts.remove_dc_offset = False
|
|
opts.window_type = "hanning"
|
|
opts.round_to_power_of_two = False
|
|
opts.blackman_coeff = 0.422
|
|
opts.snip_edges = False
|
|
print(opts)
|
|
|
|
|
|
def test_mel_banks_options():
|
|
opts = kaldifeat.MelBanksOptions()
|
|
opts.num_bins = 23
|
|
opts.low_freq = 21
|
|
opts.high_freq = 8000
|
|
opts.vtln_low = 101
|
|
opts.vtln_high = -501
|
|
opts.debug_mel = True
|
|
opts.htk_mode = True
|
|
print(opts)
|
|
|
|
|
|
def test_fbank_options():
|
|
opts = kaldifeat.FbankOptions()
|
|
frame_opts = opts.frame_opts
|
|
mel_opts = opts.mel_opts
|
|
|
|
opts.energy_floor = 0
|
|
opts.htk_compat = False
|
|
opts.raw_energy = True
|
|
opts.use_energy = False
|
|
opts.use_log_fbank = True
|
|
opts.use_power = True
|
|
opts.device = torch.device("cuda", 0)
|
|
|
|
frame_opts.blackman_coeff = 0.42
|
|
frame_opts.dither = 1
|
|
frame_opts.frame_length_ms = 25
|
|
frame_opts.frame_shift_ms = 10
|
|
frame_opts.preemph_coeff = 0.97
|
|
frame_opts.remove_dc_offset = True
|
|
frame_opts.round_to_power_of_two = True
|
|
frame_opts.samp_freq = 16000
|
|
frame_opts.snip_edges = True
|
|
frame_opts.window_type = "povey"
|
|
|
|
mel_opts.debug_mel = True
|
|
mel_opts.high_freq = 0
|
|
mel_opts.low_freq = 20
|
|
mel_opts.num_bins = 23
|
|
mel_opts.vtln_high = -500
|
|
mel_opts.vtln_low = 100
|
|
|
|
print(opts)
|
|
|
|
|
|
def test_mfcc_options():
|
|
opts = kaldifeat.MfccOptions()
|
|
frame_opts = opts.frame_opts
|
|
mel_opts = opts.mel_opts
|
|
|
|
opts.num_ceps = 10
|
|
opts.use_energy = False
|
|
opts.energy_floor = 0.0
|
|
opts.raw_energy = True
|
|
opts.cepstral_lifter = 22.0
|
|
opts.htk_compat = False
|
|
opts.device = torch.device("cpu")
|
|
|
|
frame_opts.blackman_coeff = 0.42
|
|
frame_opts.dither = 1
|
|
frame_opts.frame_length_ms = 25
|
|
frame_opts.frame_shift_ms = 10
|
|
frame_opts.preemph_coeff = 0.97
|
|
frame_opts.remove_dc_offset = True
|
|
frame_opts.round_to_power_of_two = True
|
|
frame_opts.samp_freq = 16000
|
|
frame_opts.snip_edges = True
|
|
frame_opts.window_type = "povey"
|
|
|
|
mel_opts.debug_mel = True
|
|
mel_opts.high_freq = 0
|
|
mel_opts.low_freq = 20
|
|
mel_opts.num_bins = 23
|
|
mel_opts.vtln_high = -500
|
|
mel_opts.vtln_low = 100
|
|
|
|
print(opts)
|
|
|
|
|
|
def test_spectogram_options():
|
|
opts = kaldifeat.SpectrogramOptions()
|
|
opts.energy_floor = 0.0
|
|
opts.raw_energy = True
|
|
|
|
frame_opts = opts.frame_opts
|
|
frame_opts.blackman_coeff = 0.42
|
|
frame_opts.dither = 1
|
|
frame_opts.frame_length_ms = 25
|
|
frame_opts.frame_shift_ms = 10
|
|
frame_opts.preemph_coeff = 0.97
|
|
frame_opts.remove_dc_offset = True
|
|
frame_opts.round_to_power_of_two = True
|
|
frame_opts.samp_freq = 16000
|
|
frame_opts.snip_edges = True
|
|
frame_opts.window_type = "povey"
|
|
|
|
print(opts)
|
|
|
|
|
|
def test_plp_options():
|
|
opts = kaldifeat.PlpOptions()
|
|
opts.lpc_order = 12
|
|
opts.num_ceps = 13
|
|
opts.use_energy = True
|
|
opts.energy_floor = 0.0
|
|
opts.raw_energy = True
|
|
opts.compress_factor = 0.33333
|
|
opts.cepstral_lifter = 22
|
|
opts.cepstral_scale = 1.0
|
|
opts.htk_compat = False
|
|
opts.device = torch.device("cpu")
|
|
|
|
frame_opts = opts.frame_opts
|
|
frame_opts.blackman_coeff = 0.42
|
|
frame_opts.dither = 1
|
|
frame_opts.frame_length_ms = 25
|
|
frame_opts.frame_shift_ms = 10
|
|
frame_opts.preemph_coeff = 0.97
|
|
frame_opts.remove_dc_offset = True
|
|
frame_opts.round_to_power_of_two = True
|
|
frame_opts.samp_freq = 16000
|
|
frame_opts.snip_edges = True
|
|
frame_opts.window_type = "povey"
|
|
|
|
mel_opts = opts.mel_opts
|
|
mel_opts.debug_mel = True
|
|
mel_opts.high_freq = 0
|
|
mel_opts.low_freq = 20
|
|
mel_opts.num_bins = 23
|
|
mel_opts.vtln_high = -500
|
|
mel_opts.vtln_low = 100
|
|
|
|
print(opts)
|
|
|
|
|
|
def main():
|
|
test_frame_extraction_options()
|
|
test_mel_banks_options()
|
|
test_fbank_options()
|
|
test_mfcc_options()
|
|
test_spectogram_options()
|
|
test_plp_options()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|