aubio
0.4.9
Toggle main menu visibility
Loading...
Searching...
No Matches
spectral
mfcc.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
Mel-Frequency Cepstrum Coefficients object
25
26
This object computes MFCC coefficients on an input cvec_t.
27
28
The implementation follows the specifications established by Malcolm Slaney
29
in its Auditory Toolbox, available online at the following address (see
30
file mfcc.m):
31
32
https://engineering.purdue.edu/~malcolm/interval/1998-010/
33
34
\example spectral/test-mfcc.c
35
36
*/
37
38
#ifndef AUBIO_MFCC_H
39
#define AUBIO_MFCC_H
40
41
#ifdef __cplusplus
42
extern
"C"
43
{
44
#endif
45
46
/** mfcc object */
47
typedef
struct
_aubio_mfcc_t
aubio_mfcc_t
;
48
49
/** create mfcc object
50
51
\param buf_size size of analysis buffer (and length the FFT transform)
52
\param samplerate audio sampling rate
53
\param n_coeffs number of desired coefficients
54
\param n_filters number of desired filters
55
56
*/
57
aubio_mfcc_t
*
new_aubio_mfcc
(
uint_t
buf_size,
58
uint_t
n_filters,
uint_t
n_coeffs,
uint_t
samplerate);
59
60
/** delete mfcc object
61
62
\param mf mfcc object as returned by new_aubio_mfcc
63
64
*/
65
void
del_aubio_mfcc
(
aubio_mfcc_t
* mf);
66
67
/** mfcc object processing
68
69
\param mf mfcc object as returned by new_aubio_mfcc
70
\param in input spectrum (buf_size long)
71
\param out output mel coefficients buffer (n_coeffs long)
72
73
*/
74
void
aubio_mfcc_do
(
aubio_mfcc_t
* mf,
const
cvec_t
* in,
fvec_t
* out);
75
76
/** set power parameter
77
78
\param mf mfcc object, as returned by new_aubio_mfcc()
79
\param power Raise norm of the input spectrum norm to this power before
80
computing filterbank. Defaults to `1`.
81
82
See aubio_filterbank_set_power().
83
84
*/
85
uint_t
aubio_mfcc_set_power
(
aubio_mfcc_t
*mf,
smpl_t
power);
86
87
/** get power parameter
88
89
\param mf mfcc object, as returned by new_aubio_mfcc()
90
\return current power parameter. Defaults to `1`.
91
92
See aubio_filterbank_get_power().
93
94
*/
95
smpl_t
aubio_mfcc_get_power
(
aubio_mfcc_t
*mf);
96
97
/** set scaling parameter
98
99
\param mf mfcc object, as returned by new_aubio_mfcc()
100
\param scale Scaling value to apply.
101
102
Scales the output of the filterbank after taking its logarithm and before
103
computing the DCT. Defaults to `1`.
104
105
*/
106
uint_t
aubio_mfcc_set_scale
(
aubio_mfcc_t
*mf,
smpl_t
scale);
107
108
/** get scaling parameter
109
110
\param mf mfcc object, as returned by new_aubio_mfcc()
111
\return current scaling parameter. Defaults to `1`.
112
113
*/
114
smpl_t
aubio_mfcc_get_scale
(
aubio_mfcc_t
*mf);
115
116
/** Mel filterbank initialization
117
118
\param mf mfcc object
119
\param fmin start frequency, in Hz
120
\param fmax end frequency, in Hz
121
122
The filterbank will be initialized with bands linearly spaced in the mel
123
scale, from `fmin` to `fmax`.
124
125
See also
126
--------
127
128
aubio_filterbank_set_mel_coeffs()
129
130
*/
131
uint_t
aubio_mfcc_set_mel_coeffs
(
aubio_mfcc_t
*mf,
132
smpl_t
fmin,
smpl_t
fmax);
133
134
/** Mel filterbank initialization
135
136
\param mf mfcc object
137
\param fmin start frequency, in Hz
138
\param fmax end frequency, in Hz
139
140
The bank of filters will be initalized to to cover linearly spaced bands in
141
the Htk mel scale, from `fmin` to `fmax`.
142
143
See also
144
--------
145
146
aubio_filterbank_set_mel_coeffs_htk()
147
148
*/
149
uint_t
aubio_mfcc_set_mel_coeffs_htk
(
aubio_mfcc_t
*mf,
150
smpl_t
fmin,
smpl_t
fmax);
151
152
/** Mel filterbank initialization (Auditory Toolbox's parameters)
153
154
\param mf mfcc object
155
156
The filter coefficients are built to match exactly Malcolm Slaney's Auditory
157
Toolbox implementation. The number of filters should be 40.
158
159
This is the default filterbank when `mf` was created with `n_filters = 40`.
160
161
See also
162
--------
163
164
aubio_filterbank_set_mel_coeffs_slaney()
165
166
*/
167
uint_t
aubio_mfcc_set_mel_coeffs_slaney
(
aubio_mfcc_t
*mf);
168
169
#ifdef __cplusplus
170
}
171
#endif
172
173
#endif
/* AUBIO_MFCC_H */
aubio_mfcc_set_power
uint_t aubio_mfcc_set_power(aubio_mfcc_t *mf, smpl_t power)
set power parameter
aubio_mfcc_set_mel_coeffs
uint_t aubio_mfcc_set_mel_coeffs(aubio_mfcc_t *mf, smpl_t fmin, smpl_t fmax)
Mel filterbank initialization.
aubio_mfcc_do
void aubio_mfcc_do(aubio_mfcc_t *mf, const cvec_t *in, fvec_t *out)
mfcc object processing
aubio_mfcc_set_scale
uint_t aubio_mfcc_set_scale(aubio_mfcc_t *mf, smpl_t scale)
set scaling parameter
aubio_mfcc_set_mel_coeffs_slaney
uint_t aubio_mfcc_set_mel_coeffs_slaney(aubio_mfcc_t *mf)
Mel filterbank initialization (Auditory Toolbox's parameters).
aubio_mfcc_set_mel_coeffs_htk
uint_t aubio_mfcc_set_mel_coeffs_htk(aubio_mfcc_t *mf, smpl_t fmin, smpl_t fmax)
Mel filterbank initialization.
aubio_mfcc_get_power
smpl_t aubio_mfcc_get_power(aubio_mfcc_t *mf)
get power parameter
del_aubio_mfcc
void del_aubio_mfcc(aubio_mfcc_t *mf)
delete mfcc object
new_aubio_mfcc
aubio_mfcc_t * new_aubio_mfcc(uint_t buf_size, uint_t n_filters, uint_t n_coeffs, uint_t samplerate)
create mfcc object
aubio_mfcc_t
struct _aubio_mfcc_t aubio_mfcc_t
mfcc object
Definition
mfcc.h:47
aubio_mfcc_get_scale
smpl_t aubio_mfcc_get_scale(aubio_mfcc_t *mf)
get scaling parameter
cvec_t
Vector of real-valued phase and spectrum data.
Definition
cvec.h:63
fvec_t
Buffer for real data.
Definition
fvec.h:67
uint_t
unsigned int uint_t
unsigned integer
Definition
types.h:60
smpl_t
float smpl_t
short sample format (32 or 64 bits)
Definition
types.h:41
Generated by
1.17.0