What is talkbox ?
talkbox is a scikit for signal/speech processing, to extend scipy capabilities in that domain.
Talkbox depends on numpy, scipy and setuptools. There is no additional dependencies; it should build and run on any platform supported by numpy. Simply run the following in the source tree:
python setup.py install
It is also available on pypi:
For now, the following has been implemented:
- Levinson algorithm for inversion of Toeplitz matrices in O(N**2). Only double and float supported (a very slow pure python version is available for complex numbers as a reference).
- LPC coefficients computation using the autocorrelation method (Yule-Walker equations).
- Relatively fast computation of the LPC residual for a set of windows of the same size (for speech analysis)
Some complementary tools are also implemented, mainly for window processing on a long 1d signal:
- a slfilter function to filter a set of windows of the same size with a set of filters.
- a segment_axis function which gives something similar to the buffer function in matlab to chop a signal into a set of windows with overlap
- Direct and FFT based autocorrelation computation
The goal is to provide some functionalities found in matlab signal toolbox, as well as other features not found in matlab for speech processing. In particular, we intend to implement the following:
- parametric and non parametric spectral estimation: ar, periodogram, MUSIC, PENCIL, etc...
- Discrete Cosine Transform, Modified Discrete Cosine Transform
- basic speech-related features: mfcc, mel filtering, etc...
Every algorithm and functionality will have a python implementation, with optional C/Cython code for speed when necessary, so that it can be used as a reference and can be easily reproduced in another language.
talkbox is licensed under a very liberal, BSD-based license, for use in both open-source and proprietary softwares.