comparison src/cs/layer1/audio_cust0/l1audio_cust.h @ 0:b6a5e36de839

src/cs: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:39:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:b6a5e36de839
1 /************* Revision Controle System Header *************
2 * GSM Layer 1 software
3 * L1AUDIO_CUST.H
4 *
5 * Filename l1audio_cust.h
6 * Copyright 2003 (C) Texas Instruments
7 *
8 ************* Revision Controle System Header *************/
9
10 #if (AUDIO_TASK == 1)
11
12 #if (OP_RIV_AUDIO == 0)
13 extern void vocoder_mute_dl (BOOL mute);
14 extern void vocoder_mute_ul (BOOL mute);
15 #endif
16
17 #if (MELODY_E1)
18 //----------------------------------------
19 // Melody format E1 constant.
20 //----------------------------------------
21
22 // Number of oscillators (fixed value)
23 #define SC_NUMBER_OSCILLATOR 8
24
25 // Define the unit of the downloading time (fixed value)
26 #define SC_MELO_DOWNLOAD_TIME_UNIT 4 // unit = 20ms
27
28 #endif // MELODY_E1
29
30 #if (VOICE_MEMO) || (SPEECH_RECO)
31 //----------------------------------------
32 // Voice memo constant.
33 //----------------------------------------
34
35 // Word to indicate the end of the speech data (fixed value).
36 #define SC_VM_END_MASK 0xFBFF
37
38 #endif // VOICE_MEMO || SPEECH_RECO
39
40 #if (L1_VOICE_MEMO_AMR)
41 //----------------------------------------
42 // Voice memo amr constant.
43 //----------------------------------------
44
45 // Word to indicate the end of the speech data (fixed value).
46 #define SC_VM_AMR_END_MASK_SIZE 1
47 #define SC_VM_AMR_END_MASK 0xFF
48
49 #endif // L1_VOICE_MEMO_AMR
50
51 #if (SPEECH_RECO)
52 //----------------------------------------
53 // Speech recognition constant.
54 //----------------------------------------
55
56 // Error ID (fixed values)
57 #define SC_NO_ERROR 0 // No error
58 #define SC_BAD_ACQUISITION 1 // Bad acquisition of the word. The word is too long or too short
59 #define SC_TIME_OUT 2 // The DSP task to acquire the word takes to much time
60 #define SC_BAD_UPDATE 3 // Bad update of the model. The model from the database is too different
61 // than the model built during the acquisition.
62 #define SC_BAD_RECOGNITION 4 // This word is out of vocabulary or the best words are too close
63 #define SC_CTO_WORD 5 // A word generated by the CTO algorithm is the best word.
64 #define SC_CHECK_ERROR 6 // The best word isn't the word to update.
65
66 // Time out (fixed values)
67 #define SC_SR_AQUISITION_TIME_OUT 867 // acquisition time out in fn unit (3s).
68 #define SC_SR_UPDATE_TIME_OUT 500 // update time out in fn unit.
69 #define SC_SR_PROCESSING_TIME_OUT 500 // processing time out in fn unit.
70
71
72 // CTO algorithm parameters (tuning value)
73 #define SC_SR_MAX_WORDS_FOR_CTO 4 // Threshold to decide when the CTO algorithm is needed:
74 // if the number of model is less 0r equal to this value, the CTO algo. is enabled.
75
76 // model constant (fixed values)
77 #define SC_SR_MODEL_FRAME_SIZE 16 // size of the model parameters per audio frames (20 ms).
78 #define SC_SR_MODEL_API_SIZE 1041 // size of the model corrsponding to the longest possible word (1,3 second):
79 // 16 words frames* 1,3s/20ms + 1 = 1041
80 // the header word of the model gives the size of the model in model frame unit.
81 #define SC_SR_MMI_DB_MODEL_SIZE SC_SR_MODEL_API_SIZE // maximum size of the model in the MMI database.
82
83 // speech constant (fixed values)
84 #define SC_SR_SPEECH_FRAME_SIZE 20 // size of the speech samples per audio frams (20ms)
85
86 #define SC_SR_SPEECH_WORD_SIZE 65 // maximum size in speech frame size unit of the word to acquire
87 #define SC_SR_SPEECH_WORD_BEGIN_VAD_LATENCY 35 // time in speech frame size unit to detect that the word begins
88 #define SC_SR_SPEECH_WORD_END_VAD_LATENCY 35 // time in speech frame size unit to detect that the word is finished
89 #define SC_SR_SPEECH_WORD_BEGIN_MARGIN 5 // time in speech frame size unit to add a beginning margin of the word
90 #define SC_SR_SPEECH_WORD_END_MARGIN 5 // time in speech frame size unit to add a end margin of the word
91 #define SC_SR_SPEECH_ENDING_DONE_MARGING 20 // time in speech frame size unit to have the word done status after the word ending status.
92
93 #define SC_SR_MMI_2_L1_SPEECH_SIZE (SC_SR_SPEECH_WORD_BEGIN_MARGIN + SC_SR_SPEECH_WORD_SIZE + SC_SR_SPEECH_WORD_END_VAD_LATENCY + SC_SR_SPEECH_ENDING_DONE_MARGING) * SC_SR_SPEECH_FRAME_SIZE
94 // size of the speech buffer allocated by MMI to acquire the speech.
95 #define SC_SR_MMI_DB_SPEECH_SIZE (SC_SR_SPEECH_WORD_BEGIN_MARGIN + SC_SR_SPEECH_WORD_SIZE + SC_SR_SPEECH_WORD_END_MARGIN) * SC_SR_SPEECH_FRAME_SIZE + 1 // size of the speech buffer included in a MMI database
96 // "+1" is for the END voice memo mask.
97
98 // DSP Out-Of-Vocabulary constant (tuning value)
99 #define SC_SR_OOV_SFT_THR 10 // OOV rejection threhold (the lower more rejection)
100 // if this value is equal to 0, ther's no rejection
101
102 #endif // SPEECH_RECO
103
104 #if (L1_NEW_AEC)
105 // time interval between 2 AEC debug traces (in TDMA). Must be <= 127
106 #define SC_AEC_VISIBILITY_INTERVAL 52
107 #endif
108
109 #if (FIR)
110 // FIR indication (fixed values)
111 #define DL_FIR 1 // The DL FIR must be updated
112 #define UL_FIR 2 // The UL FIR must be updated
113 #define UL_DL_FIR 3 // The UL&DL FIR must be updated
114
115 #endif
116
117 // List of the error returned by the Cust_get_pointer function
118 #define DATA_AVAILABLE 0 // No error is occured
119 #define SESSION_ERROR 1 // Wrong session id
120 #define POINTER_ERROR 2 // Wrong ptr argument
121 #define DATA_AVAIL_ERROR 3 // No more data available
122
123 #if (AUDIO_MODE)
124 #define GSM_ONLY 0 // GSM normal mode
125 #define BT_CORDLESS 1 // Bluetooth cordless mode
126 #define BT_HEADSET 2 // Bluetooth headset mode
127 #endif
128
129 #if (MELODY_E2)
130 #define SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT 8 // Maximum number of instruments allowed to play in thesame time
131 // (Fixed value)
132 #define SC_AUDIO_MELODY_E2_MAX_SIZE_OF_INSTRUMENT (3807 - C_DEBUG_BUFFER_SIZE)
133 // Melody E2 instrument wave table size in the API memory
134 // (fixed value)
135 #define SC_AUDIO_MELODY_E2_MAX_SIZE_OF_DSP_TRACE (C_DEBUG_BUFFER_SIZE + 1)
136 // DSP API buffer trace size (fixed value)
137
138 // Note :the melody E2 instrument are overlayed with the DSP buffer trace. The size ofthe trace buffer can
139 // change in order to increase the DSP tracability. In all case, the following rules need to be followed
140 // (when melody E2 is activated):
141 // size of the E2 instruments buffer + size of DSP trace buffer = 2049
142 // size of the E2 instrument buffers > 1
143 // size of DSP trace buffer > 1
144 #endif
145 #endif // AUDIO_TASK
146
147 // Number of coefficient for each FIR (fixed value)
148 #define MAX_FIR_COEF 31
149