1 #ifndef __TRUESPEECH_DATA__
2 #define __TRUESPEECH_DATA__
4 /* codebooks fo expanding input filter */
5 static const int16_t ts_cb_0[32] = {
6 0x8240, 0x8364, 0x84CE, 0x865D, 0x8805, 0x89DE, 0x8BD7, 0x8DF4,
7 0x9051, 0x92E2, 0x95DE, 0x990F, 0x9C81, 0xA079, 0xA54C, 0xAAD2,
8 0xB18A, 0xB90A, 0xC124, 0xC9CC, 0xD339, 0xDDD3, 0xE9D6, 0xF893,
9 0x096F, 0x1ACA, 0x29EC, 0x381F, 0x45F9, 0x546A, 0x63C3, 0x73B5,
12 static const int16_t ts_cb_1[32] = {
13 0x9F65, 0xB56B, 0xC583, 0xD371, 0xE018, 0xEBB4, 0xF61C, 0xFF59,
14 0x085B, 0x1106, 0x1952, 0x214A, 0x28C9, 0x2FF8, 0x36E6, 0x3D92,
15 0x43DF, 0x49BB, 0x4F46, 0x5467, 0x5930, 0x5DA3, 0x61EC, 0x65F9,
16 0x69D4, 0x6D5A, 0x709E, 0x73AD, 0x766B, 0x78F0, 0x7B5A, 0x7DA5,
19 static const int16_t ts_cb_2[16] = {
20 0x96F8, 0xA3B4, 0xAF45, 0xBA53, 0xC4B1, 0xCECC, 0xD86F, 0xE21E,
21 0xEBF3, 0xF640, 0x00F7, 0x0C20, 0x1881, 0x269A, 0x376B, 0x4D60,
24 static const int16_t ts_cb_3[16] = {
25 0xC654, 0xDEF2, 0xEFAA, 0xFD94, 0x096A, 0x143F, 0x1E7B, 0x282C,
26 0x3176, 0x3A89, 0x439F, 0x4CA2, 0x557F, 0x5E50, 0x6718, 0x6F8D,
29 static const int16_t ts_cb_4[16] = {
30 0xABE7, 0xBBA8, 0xC81C, 0xD326, 0xDD0E, 0xE5D4, 0xEE22, 0xF618,
31 0xFE28, 0x064F, 0x0EB7, 0x17B8, 0x21AA, 0x2D8B, 0x3BA2, 0x4DF9,
34 static const int16_t ts_cb_5[8] = {
35 0xD51B, 0xF12E, 0x042E, 0x13C7, 0x2260, 0x311B, 0x40DE, 0x5385,
38 static const int16_t ts_cb_6[8] = {
39 0xB550, 0xC825, 0xD980, 0xE997, 0xF883, 0x0752, 0x1811, 0x2E18,
42 static const int16_t ts_cb_7[8] = {
43 0xCEF0, 0xE4F9, 0xF6BB, 0x0646, 0x14F5, 0x23FF, 0x356F, 0x4A8D,
46 static const int16_t *ts_codebook[8] = {
47 ts_cb_0, ts_cb_1, ts_cb_2, ts_cb_3, ts_cb_4, ts_cb_5, ts_cb_6, ts_cb_7
50 /* table used for decoding pulse positions */
51 static const int16_t ts_140[120] = {
52 0x0E46, 0x0CCC, 0x0B6D, 0x0A28, 0x08FC, 0x07E8, 0x06EB, 0x0604,
53 0x0532, 0x0474, 0x03C9, 0x0330, 0x02A8, 0x0230, 0x01C7, 0x016C,
54 0x011E, 0x00DC, 0x00A5, 0x0078, 0x0054, 0x0038, 0x0023, 0x0014,
55 0x000A, 0x0004, 0x0001, 0x0000, 0x0000, 0x0000,
57 0x0196, 0x017A, 0x015F, 0x0145, 0x012C, 0x0114, 0x00FD, 0x00E7,
58 0x00D2, 0x00BE, 0x00AB, 0x0099, 0x0088, 0x0078, 0x0069, 0x005B,
59 0x004E, 0x0042, 0x0037, 0x002D, 0x0024, 0x001C, 0x0015, 0x000F,
60 0x000A, 0x0006, 0x0003, 0x0001, 0x0000, 0x0000,
62 0x001D, 0x001C, 0x001B, 0x001A, 0x0019, 0x0018, 0x0017, 0x0016,
63 0x0015, 0x0014, 0x0013, 0x0012, 0x0011, 0x0010, 0x000F, 0x000E,
64 0x000D, 0x000C, 0x000B, 0x000A, 0x0009, 0x0008, 0x0007, 0x0006,
65 0x0005, 0x0004, 0x0003, 0x0002, 0x0001, 0x0000,
67 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
68 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
69 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
70 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
73 /* filter for correlated input filter */
74 static const int16_t ts_230[8] =
75 { 0x7F3B, 0x7E78, 0x7DB6, 0x7CF5, 0x7C35, 0x7B76, 0x7AB8, 0x79FC };
77 /* two-point filters table */
78 static const int16_t ts_240[25 * 2] = {
110 /* possible pulse values */
111 static const int16_t ts_562[64] = {
112 0x0002, 0x0006, 0xFFFE, 0xFFFA,
113 0x0004, 0x000C, 0xFFFC, 0xFFF4,
114 0x0006, 0x0012, 0xFFFA, 0xFFEE,
115 0x000A, 0x001E, 0xFFF6, 0xFFE2,
116 0x0010, 0x0030, 0xFFF0, 0xFFD0,
117 0x0019, 0x004B, 0xFFE7, 0xFFB5,
118 0x0028, 0x0078, 0xFFD8, 0xFF88,
119 0x0040, 0x00C0, 0xFFC0, 0xFF40,
120 0x0065, 0x012F, 0xFF9B, 0xFED1,
121 0x00A1, 0x01E3, 0xFF5F, 0xFE1D,
122 0x0100, 0x0300, 0xFF00, 0xFD00,
123 0x0196, 0x04C2, 0xFE6A, 0xFB3E,
124 0x0285, 0x078F, 0xFD7B, 0xF871,
125 0x0400, 0x0C00, 0xFC00, 0xF400,
126 0x0659, 0x130B, 0xF9A7, 0xECF5,
127 0x0A14, 0x1E3C, 0xF5EC, 0xE1C4
130 /* filters used in final output calculations */
131 static const int16_t ts_5E2[8] =
132 { 0x4666, 0x26B8, 0x154C, 0x0BB6, 0x0671, 0x038B, 0x01F3, 0x0112 };
133 static const int16_t ts_5F2[8] =
134 { 0x6000, 0x4800, 0x3600, 0x2880, 0x1E60, 0x16C8, 0x1116, 0x0CD1 };