SphinxBase  5prealpha
fe_prespch_buf.h
1 /* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /* ====================================================================
3  * Copyright (c) 2013 Carnegie Mellon University. All rights
4  * reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in
15  * the documentation and/or other materials provided with the
16  * distribution.
17  *
18  * This work was supported in part by funding from the Defense Advanced
19  * Research Projects Agency and the National Science Foundation of the
20  * United States of America, and the CMU Sphinx Speech Consortium.
21  *
22  * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND
23  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
24  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
25  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
26  * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  *
34  * ====================================================================
35  *
36  */
37 
38 /* Buffer that maintains both features and raw audio for the VAD implementation */
39 
40 #ifndef FE_INTERNAL_H
41 #define FE_INTERNAL_H
42 
43 #include "sphinxbase/fe.h"
44 
45 typedef struct prespch_buf_s prespch_buf_t;
46 
47 /* Creates prespeech buffer */
48 prespch_buf_t *fe_prespch_init(int num_frames, int num_cepstra,
49  int num_samples);
50 
51 /* Reads mfcc frame from prespeech buffer */
52 int fe_prespch_read_cep(prespch_buf_t * prespch_buf, mfcc_t * fea);
53 
54 /* Writes mfcc frame to prespeech buffer */
55 void fe_prespch_write_cep(prespch_buf_t * prespch_buf, mfcc_t * fea);
56 
57 /* Reads pcm frame from prespeech buffer */
58 void fe_prespch_read_pcm(prespch_buf_t * prespch_buf, int16 *samples,
59  int32 * samples_num);
60 
61 /* Writes pcm frame to prespeech buffer */
62 void fe_prespch_write_pcm(prespch_buf_t * prespch_buf, int16 * samples);
63 
64 /* Resets read/write pointers for cepstrum buffer */
65 void fe_prespch_reset_cep(prespch_buf_t * prespch_buf);
66 
67 /* Resets read/write pointer for pcm audio buffer */
68 void fe_prespch_reset_pcm(prespch_buf_t * prespch_buf);
69 
70 /* Releases prespeech buffer */
71 void fe_prespch_free(prespch_buf_t * prespch_buf);
72 
73 /* Returns number of accumulated frames */
74 int32 fe_prespch_ncep(prespch_buf_t * prespch_buf);
75 
76 #endif /* FE_INTERNAL_H */