aubio  0.4.9
filterbank_mel.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2007-2013 Paul Brossier <piem@aubio.org>
3  and Amaury Hazan <ahazan@iua.upf.edu>
4 
5  This file is part of aubio.
6 
7  aubio is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  aubio is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with aubio. If not, see <http://www.gnu.org/licenses/>.
19 
20 */
21 
22 /** \file
23 
24  Filterbank object coefficients initialization
25 
26  Functions to create set the ::aubio_filterbank_t coefficients to
27  - ::aubio_filterbank_set_triangle_bands: overlapping triangular bands,
28  - ::aubio_filterbank_set_mel_coeffs_slaney: Mel frequency bands.
29 
30  \example spectral/test-filterbank_mel.c
31 
32 */
33 
34 #ifndef AUBIO_FILTERBANK_MEL_H
35 #define AUBIO_FILTERBANK_MEL_H
36 
37 #ifdef __cplusplus
38 extern "C"
39 {
40 #endif
41 
42 /** filterbank initialization with triangular and overlapping bands
43 
44  \param fb filterbank object
45  \param freqs arbitrary array of boundary frequencies
46  \param samplerate audio sampling rate
47 
48  This function computes the coefficients of the filterbank based on the
49  boundaries found in freqs, in Hz, and using triangular overlapping bands.
50 
51 */
53  const fvec_t * freqs, smpl_t samplerate);
54 
55 /** filterbank initialization for Mel filters using Slaney's coefficients
56 
57  \param fb filterbank object
58  \param samplerate audio sampling rate, in Hz
59 
60  The filter coefficients are built to match exactly Malcolm Slaney's Auditory
61  Toolbox implementation (see file mfcc.m). The number of filters should be 40.
62 
63  References
64  ----------
65 
66  Malcolm Slaney, *Auditory Toolbox Version 2, Technical Report #1998-010*
67  https://engineering.purdue.edu/~malcolm/interval/1998-010/
68 
69 */
71  smpl_t samplerate);
72 
73 /** Mel filterbank initialization
74 
75  \param fb filterbank object
76  \param samplerate audio sampling rate
77  \param fmin start frequency, in Hz
78  \param fmax end frequency, in Hz
79 
80  The filterbank will be initialized with bands linearly spaced in the mel
81  scale, from `fmin` to `fmax`.
82 
83  References
84  ----------
85 
86  Malcolm Slaney, *Auditory Toolbox Version 2, Technical Report #1998-010*
87  https://engineering.purdue.edu/~malcolm/interval/1998-010/
88 
89 */
91  smpl_t samplerate, smpl_t fmin, smpl_t fmax);
92 
93 /** Mel filterbank initialization
94 
95  \param fb filterbank object
96  \param samplerate audio sampling rate
97  \param fmin start frequency, in Hz
98  \param fmax end frequency, in Hz
99 
100  The bank of filters will be initalized to to cover linearly spaced bands in
101  the Htk mel scale, from `fmin` to `fmax`.
102 
103  References
104  ----------
105 
106  Douglas O'Shaughnessy (1987). *Speech communication: human and machine*.
107  Addison-Wesley. p. 150. ISBN 978-0-201-16520-3.
108 
109  HTK Speech Recognition Toolkit: http://htk.eng.cam.ac.uk/
110 
111 */
113  smpl_t samplerate, smpl_t fmin, smpl_t fmax);
114 
115 #ifdef __cplusplus
116 }
117 #endif
118 
119 #endif /* AUBIO_FILTERBANK_MEL_H */
struct _aubio_filterbank_t aubio_filterbank_t
filterbank object
Definition: filterbank.h:45
uint_t aubio_filterbank_set_mel_coeffs_htk(aubio_filterbank_t *fb, smpl_t samplerate, smpl_t fmin, smpl_t fmax)
Mel filterbank initialization.
uint_t aubio_filterbank_set_mel_coeffs_slaney(aubio_filterbank_t *fb, smpl_t samplerate)
filterbank initialization for Mel filters using Slaney&#39;s coefficients
float smpl_t
short sample format (32 or 64 bits)
Definition: types.h:41
Buffer for real data.
Definition: fvec.h:67
uint_t aubio_filterbank_set_mel_coeffs(aubio_filterbank_t *fb, smpl_t samplerate, smpl_t fmin, smpl_t fmax)
Mel filterbank initialization.
uint_t aubio_filterbank_set_triangle_bands(aubio_filterbank_t *fb, const fvec_t *freqs, smpl_t samplerate)
filterbank initialization with triangular and overlapping bands
unsigned int uint_t
unsigned integer
Definition: types.h:60