1 /*
2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_NS_MAIN_SOURCE_NSX_DEFINES_H_
12 #define WEBRTC_MODULES_AUDIO_PROCESSING_NS_MAIN_SOURCE_NSX_DEFINES_H_
13 
14 #define ANAL_BLOCKL_MAX         256 // max analysis block length
15 #define HALF_ANAL_BLOCKL        129 // half max analysis block length + 1
16 #define SIMULT                  3
17 #define END_STARTUP_LONG        200
18 #define END_STARTUP_SHORT       50
19 #define FACTOR_Q16              (WebRtc_Word32)2621440 // 40 in Q16
20 #define FACTOR_Q7               (WebRtc_Word16)5120 // 40 in Q7
21 #define FACTOR_Q7_STARTUP       (WebRtc_Word16)1024 // 8 in Q7
22 #define WIDTH_Q8                3 // 0.01 in Q8 (or 25 )
23 //PARAMETERS FOR NEW METHOD
24 #define DD_PR_SNR_Q11           2007 // ~= Q11(0.98) DD update of prior SNR
25 #define ONE_MINUS_DD_PR_SNR_Q11 41 // DD update of prior SNR
26 #define SPECT_FLAT_TAVG_Q14     4915 // (0.30) tavg parameter for spectral flatness measure
27 #define SPECT_DIFF_TAVG_Q8      77 // (0.30) tavg parameter for spectral flatness measure
28 #define PRIOR_UPDATE_Q14        1638 // Q14(0.1) update parameter of prior model
29 #define NOISE_UPDATE_Q8         26 // 26 ~= Q8(0.1) update parameter for noise
30 // probability threshold for noise state in speech/noise likelihood
31 #define ONE_MINUS_PROB_RANGE_Q8 205 // 205 ~= Q8(0.8)
32 #define HIST_PAR_EST            1000 // histogram size for estimation of parameters
33 //FEATURE EXTRACTION CONFIG
34 //bin size of histogram
35 #define BIN_SIZE_LRT            10
36 //scale parameters: multiply dominant peaks of the histograms by scale factor to obtain
37 // thresholds for prior model
38 #define FACTOR_1_LRT_DIFF       6 //for LRT and spectral difference (5 times bigger)
39 //for spectral_flatness: used when noise is flatter than speech (10 times bigger)
40 #define FACTOR_2_FLAT_Q10       922
41 //peak limit for spectral flatness (varies between 0 and 1)
42 #define THRES_PEAK_FLAT         24 // * 2 * BIN_SIZE_FLAT_FX
43 //limit on spacing of two highest peaks in histogram: spacing determined by bin size
44 #define LIM_PEAK_SPACE_FLAT_DIFF    4 // * 2 * BIN_SIZE_DIFF_FX
45 //limit on relevance of second peak:
46 #define LIM_PEAK_WEIGHT_FLAT_DIFF   2
47 #define THRES_FLUCT_LRT         10240 //=20 * inst->modelUpdate; fluctuation limit of LRT feat.
48 //limit on the max and min values for the feature thresholds
49 #define MAX_FLAT_Q10            38912 //  * 2 * BIN_SIZE_FLAT_FX
50 #define MIN_FLAT_Q10            4096 //  * 2 * BIN_SIZE_FLAT_FX
51 #define MAX_DIFF                100 // * 2 * BIN_SIZE_DIFF_FX
52 #define MIN_DIFF                16 // * 2 * BIN_SIZE_DIFF_FX
53 //criteria of weight of histogram peak  to accept/reject feature
54 #define THRES_WEIGHT_FLAT_DIFF  154//(int)(0.3*(inst->modelUpdate)) for flatness and difference
55 //
56 #define STAT_UPDATES            9 // Update every 512 = 1 << 9 block
57 #define ONE_MINUS_GAMMA_PAUSE_Q8    13 // ~= Q8(0.05) update for conservative noise estimate
58 #define GAMMA_NOISE_TRANS_AND_SPEECH_Q8 3 // ~= Q8(0.01) update for transition and noise region
59 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_NS_MAIN_SOURCE_NSX_DEFINES_H_
60