Mercurial > hg > audiostuff
comparison intercom/testdenoise.c @ 2:13be24d74cd2
import intercom-0.4.1
author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
---|---|
date | Fri, 25 Jun 2010 09:57:52 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1:9cadc470e3da | 2:13be24d74cd2 |
---|---|
1 /* testdenoise.c | |
2 * Jean-Marc Valin, www.speex.org | |
3 * Changes Andre Adrian | |
4 * | |
5 | |
6 cc -O2 -o testdenoise testdenoise.c -lm -lspeex | |
7 | |
8 */ | |
9 | |
10 | |
11 #ifdef HAVE_CONFIG_H | |
12 #include "config.h" | |
13 #endif | |
14 | |
15 #include <speex/speex_preprocess.h> | |
16 #include <stdio.h> | |
17 | |
18 #define NN 160 | |
19 | |
20 typedef signed short MONO; | |
21 | |
22 typedef struct { | |
23 signed short l; | |
24 signed short r; | |
25 } STEREO; | |
26 | |
27 int main() | |
28 { | |
29 STEREO in[NN]; | |
30 MONO inm[NN]; | |
31 int i; | |
32 SpeexPreprocessState *st; | |
33 int count=0; | |
34 float f; | |
35 | |
36 st = speex_preprocess_state_init(NN, 8000); | |
37 i=1; | |
38 speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_DENOISE, &i); | |
39 i=0; | |
40 speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_AGC, &i); | |
41 f=8000; | |
42 speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_AGC_LEVEL, &f); | |
43 i=0; | |
44 speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_DEREVERB, &i); | |
45 f=.4; | |
46 speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_DEREVERB_DECAY, &f); | |
47 f=.3; | |
48 speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_DEREVERB_LEVEL, &f); | |
49 while (1) | |
50 { | |
51 int vad; | |
52 fread(in, sizeof(STEREO), NN, stdin); | |
53 for (i = 0; i < NN; ++i) { | |
54 inm[i] = in[i].l; | |
55 } | |
56 | |
57 if (feof(stdin)) | |
58 break; | |
59 vad = speex_preprocess(st, inm, NULL); | |
60 /*fprintf (stderr, "%d\n", vad);*/ | |
61 for (i = 0; i < NN; ++i) { | |
62 in[i].l = inm[i]; | |
63 } | |
64 fwrite(in, sizeof(STEREO), NN, stdout); | |
65 count++; | |
66 } | |
67 speex_preprocess_state_destroy(st); | |
68 return 0; | |
69 } |