• Stars
    star
    394
  • Rank 109,295 (Top 3 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tools for Speech Enhancement integrated with Kaldi

SETK: Speech Enhancement Tools integrated with Kaldi

Here are some speech enhancement/separation tools integrated with Kaldi. I use them for front-end's data processing.

Python Scripts

  • Supervised (mask-based) adaptive beamformer (GEVD/MVDR/MCWF...)
  • Data convertion among MATLAB, Numpy and Kaldi
  • Data visualization (TF-mask, spatial/spectral features, beam pattern...)
  • Unified data and IO handlers for Kaldi's scripts, archives, wave and numpy's ndarray...
  • Unsupervised mask estimation (CGMM/CACGMM)
  • Spatial/Spectral feature computation
  • DS (delay and sum) beamformer, SD (supper-directive) beamformer
  • AuxIVA, WPE & WPD, FB (Fixed Beamformer)
  • Mask computation (iam, irm, ibm, psm, crm)
  • RIR simulation (1D/2D arrays)
  • Single channel speech separation (TF spectral masking)
  • Si-SDR/SDR/WER evaluation
  • Pywebrtc vad wrapper
  • Mask-based source localization
  • Noise suppression
  • Data simulation
  • ...

Please check out the following instruction for usage of the scripts.

Kaldi Commands

  • Compute time-frequency masks (ibm, irm etc)
  • Compute phase & magnitude spectrogram & complex STFT
  • Seperate target component using input masks
  • Wave reconstruction from enhanced spectral features
  • Complex matrix/vector class
  • MVDR/GEVD beamformer (depend on T-F mask, not very stable)
  • Fixed beamformer
  • Compute angular spectrogram based on SRP-PHAT
  • RIR generator (reference from RIR-Generator)

To build the sources, you need to compile Kaldi with --shared flags and patch matrix/matrix-common.h first

typedef enum {
    kTrans          = 112,  // CblasTrans
    kNoTrans        = 111,  // CblasNoTrans
    kConjTrans      = 113,  // CblasConjTrans
    kConjNoTrans    = 114   // CblasConjNoTrans
} MatrixTransposeType;

Then run

mkdir build
cd build
export KALDI_ROOT=/path/to/kaldi/root
export OPENFST_ROOT=/path/to/openfst/root
# if on UNIX, need compile kaldi with openblas
export OPENBLAS_ROOT=/path/to/openblas/root
cmake ..
make -j

Now I mainly work on sptk package, development based on kaldi is stopped.

For developers (who want to make commits or PRs), please remember to setup pre-commit for code style formating.

More Repositories

1

conv-tasnet

A PyTorch implementation of "TasNet: Surpassing Ideal Time-Frequency Masking for Speech Separation" (see recipes in aps framework https://github.com/funcwj/aps)
Python
207
star
2

CGMM-MVDR

Implementation of the CGMM-MVDR beamforming (for python version please refer to https://github.com/funcwj/setk)
Python
138
star
3

aps

A personal toolkit for single/multi-channel speech recognition & enhancement & separation.
Python
138
star
4

deep-clustering

deep clustering method for single-channel speech separation
Python
108
star
5

ge2e-speaker-verification

Pytorch implementation of "Generalized End-to-End Loss for Speaker Verification"
Python
101
star
6

uPIT-for-speech-separation

Speech separation with utterance-level PIT experiments
Python
100
star
7

voice-filter

A unofficial Pytorch implementation of Google's VoiceFilter
Python
97
star
8

cgmm-mask-estimator

Implementation of the offline method described in "Robust mvdr beamforming using time-frequency masks for online/offline asr in noise" (for python version please refer to https://github.com/funcwj/setk)
MATLAB
66
star
9

kaldi-python-io

A python IO interface for data accessing in kaldi
Python
38
star
10

chime4-nn-mask

Implementation of NN based mask estimator in pytorch
Python
30
star
11

pydecoder

A python wrapper for kaldi-online-decoder using Cython
C++
12
star
12

portable-decoder

A simple, portable decoder
C++
10
star
13

asr-utils

Some tools implemented in C++ for ASR
C++
7
star
14

raspberry-pi-kws

A QbyE-KWS Demo runs on Raspberry Pi
C++
5
star
15

android-kws

Source code for implementing KWS demo on android
Java
4
star