CI130X SDK API手册
2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
概述
API参考
system
sdk_default_config.h
浏览该文件的文档.
1
10
#ifndef _SDK_DEFAULT_CONFIG_H_
11
#define _SDK_DEFAULT_CONFIG_H_
12
13
#if defined(CI_CONFIG_FILE)
14
#include CI_CONFIG_FILE
15
#endif
16
17
18
/******************************** sdk config *********************************/
19
// SDK VER
20
#define SDK_VERSION 2
21
#define SDK_SUBVERSION 2
22
#define SDK_REVISION 1
23
#define SDK_TYPE "Offline"
24
25
/******************************** 开发板选择 **********************************/
26
//板级支持配置
27
#ifndef BOARD_PORT_FILE
28
#define BOARD_PORT_FILE "CI-D06GT01D.c"
29
#endif
30
31
// //示例板级支持配置
32
// #ifndef BOARD_PORT_FILE
33
// #define BOARD_PORT_FILE "board_port_xxx.c"
34
// #endif
35
36
/******************************** 灯控功能选择 **********************************/
37
// 使用VAD指示灯控
38
#ifndef USE_VAD_LIGHT
39
#define USE_VAD_LIGHT 0
40
#endif
41
42
// 使用BLINK闪烁灯控
43
#ifndef USE_BLINK_LIGHT
44
#define USE_BLINK_LIGHT 0
45
#endif
46
47
// 使用NIGHT小夜灯灯控
48
#ifndef USE_NIGHT_LIGHT
49
#define USE_NIGHT_LIGHT 0
50
#endif
51
52
// 使用COLOR三色彩灯灯控
53
#ifndef USE_COLOR_LIGHT
54
#define USE_COLOR_LIGHT 0
55
#endif
56
57
/******************************** 外设功能选择 **********************************/
58
// 使用IIC引脚配置
59
#ifndef USE_IIC_PAD
60
#define USE_IIC_PAD 0
61
#endif
62
63
// 退出唤醒时间
64
#ifndef EXIT_WAKEUP_TIME
65
#define EXIT_WAKEUP_TIME 15000 //default exit wakeup time,unit ms
66
#endif
67
68
// volume set
69
#ifndef VOLUME_MAX
70
#define VOLUME_MAX 7 //voice play max volume level
71
#endif
72
#ifndef VOLUME_MID
73
#define VOLUME_MID 5 //voice play middle volume level
74
#endif
75
#ifndef VOLUME_MIN
76
#define VOLUME_MIN 1 //voice play min volume level
77
#endif
78
79
#ifndef VOLUME_DEFAULT
80
#define VOLUME_DEFAULT 5 //voice play default volume level
81
#endif
82
83
// customer Ver (user define)
84
#ifndef USER_VERSION_MAIN_NO
85
#define USER_VERSION_MAIN_NO 1
86
#endif
87
#ifndef USER_VERSION_SUB_NO
88
#define USER_VERSION_SUB_NO 0
89
#endif
90
#ifndef USER_TYPE
91
#define USER_TYPE "CustomerAA"
92
#endif
93
94
95
// 使用COLOR三色彩灯灯控
96
#ifndef GS0XJ_BOARD_PA_AUTO
97
#define GS0XJ_BOARD_PA_AUTO 0 //GS0XJ系列板子PA是否开启自动检测功能。0、关闭(默认低电平有效)。1、开启。
98
#endif
99
100
101
/* 串口调试LOG输出 */
102
#ifndef CONFIG_CI_LOG_UART
103
#define CONFIG_CI_LOG_UART HAL_UART0_BASE
104
#endif
105
106
/* 是否开启命令行控制台 */
107
#ifndef COMMAND_LINE_CONSOLE_EN
108
#define COMMAND_LINE_CONSOLE_EN 0
109
#endif
110
111
/* 驱动中断采用事件标准组配置为1,采用全局变量配置为0 */
112
#ifndef DRIVER_OS_API
113
#define DRIVER_OS_API 0
114
#endif
115
116
#ifndef CONFIG_DIRVER_BUF_USED_FREEHEAP_EN
117
#define CONFIG_DIRVER_BUF_USED_FREEHEAP_EN 1
118
#endif
119
120
/* 在播放中是否暂停语音输入,一般来讲开启aec则不开启暂停语音输入否则开启 */
121
#ifndef PAUSE_VOICE_IN_WITH_PLAYING
122
#define PAUSE_VOICE_IN_WITH_PLAYING 1
123
#endif
124
125
/*是否允许关闭提示播报音 */
126
#ifndef PROMPT_CLOSE_EN
127
#define PROMPT_CLOSE_EN 1
128
#endif
129
130
/*异常复位跳过上电播报和协议通知 */
131
#ifndef EXCEPTION_RST_SKIP_BOOT_PROMPT
132
#define EXCEPTION_RST_SKIP_BOOT_PROMPT 1
133
#endif
134
135
/*默认模型分组ID,开机后第一次运行的识别环境 */
136
#ifndef DEFAULT_MODEL_GROUP_ID
137
#define DEFAULT_MODEL_GROUP_ID 0
138
#endif
139
140
/* 启用非唤醒状态切换模型 */
141
#ifndef USE_SEPARATE_WAKEUP_EN
142
#define USE_SEPARATE_WAKEUP_EN 1
143
#endif
144
145
/* 启用降频模式 */
146
#ifndef USE_LOWPOWER_DOWN_FREQUENCY
147
#define USE_LOWPOWER_DOWN_FREQUENCY 0
148
#endif
149
150
/* 启用低功耗模式 */
151
// #ifndef USE_LOWPOWER_OSC_FREQUENCY
152
// #define USE_LOWPOWER_OSC_FREQUENCY 0 //暂不能使用
153
// #endif
154
155
/*************************** 解码参数配置 ************************************/
156
#ifndef DECODER_MIN_ACTIVE
157
#define DECODER_MIN_ACTIVE (400) //默认400,若节点小于8000,可尝试修改到300;最小值200,最大值800
158
#endif
159
160
#ifndef DECODER_BEAM
161
#define DECODER_BEAM (9.5f) //最小值3.5 最大值15.5
162
#endif
163
164
#ifndef DEFAULT_CONFIDENCE
165
#define DEFAULT_CONFIDENCE (60) // 配置默认置信度宏 :Excel未配置置信度的词条的默认值, 理论范围[1-255],建议范围[30-150]
166
#endif
167
168
#ifndef DEFAULT_CNT
169
#define DEFAULT_CNT (6) // 配置默认cnt宏 :Excel未配置cnt的词条的默认值,理论范围[1-255],建议范围[4-20]
170
#endif
171
172
//以下宏和响应速度相关
173
#ifndef ADAPTIVE_CNT_ENABLE
174
#define ADAPTIVE_CNT_ENABLE (1) //配置自适应cnt使能宏 ,1:打开自适应 cnt; 0:关闭,加快响应速度,但必须手动在excel配置短词的cnt;
175
#endif
176
177
//以下宏和响应速度相关
178
#ifndef MAX_STOP_VAD_FRM
179
#define MAX_STOP_VAD_FRM (30) //配置VAD_END帧数宏 最大停顿静音间隔帧数 30=300ms 值越大识别响应时间会加长;过短导致出现截断,长词识别为短词 ,建议:英文/小语种 该值至少35,理论范围 [1-60],建议范围[20-50]
180
#endif
181
182
//以下宏和响应速度相关
183
#ifndef MAX_STOP_CFD_ENABLE
184
#define MAX_STOP_CFD_ENABLE (0) // 打分超过阈值提前结束功能 0 关闭 1 开启(可提升响应速度)
185
#endif
186
187
#ifndef MAX_STOP_CFD_NOCNT
188
#define MAX_STOP_CFD_NOCNT (50) // MAX_STOP_CFD_ENABLE为1有效 无cnt配置的词,最大结束阈值,理论范围 [5-200],建议范围[50-150];
189
#endif
190
191
#ifndef MAX_STOP_CFD_CNT
192
#define MAX_STOP_CFD_CNT (60) // MAX_STOP_CFD_ENABLE为1有效 有cnt配置的词,最大结束阈值,至少要比 MAX_STOP_CFD_NOCNT 大,理论范围 [5-200],建议范围[50-150];
193
#endif
194
195
#ifndef DEFAULT_STOP_SILPROB
196
#define DEFAULT_STOP_SILPROB (0.9f) // 识别结束停顿静音概率阈值,理论范围[0-1],值越大支持的停顿时间越长
197
#endif
198
199
//以下宏和响应速度相关
200
#ifndef DEFAULT_STOP_SILCNT
201
#define DEFAULT_STOP_SILCNT (2) // 识别结束静音连续次数宏:识别结束停顿静音,值越大支持的停顿时间越长,理论范围 [1-200] 建议范围 [1-10]
202
#endif
203
204
#ifndef RECOVER_RESULT_ENABLE
205
#define RECOVER_RESULT_ENABLE (1) //语音识别结果回收使能配置(整段语音结束,无有效结果,再回溯搜索打分满足阈值[CNT不满足]的结果), 开启人声噪音识别率会增加,但集外误识别会提升
206
#endif
207
208
#ifndef RECOVER_RESULT_MODE
209
#define RECOVER_RESULT_MODE (0) // RECOVER_RESULT_ENABLE 为1 有效,语音识别结果回收使能作用模式,0 命令词和唤醒词; 1 唤醒词
210
#endif
211
212
#ifndef RECOVER_RESULT_MAX_FRM
213
#define RECOVER_RESULT_MAX_FRM (0) // RECOVER_RESULT_ENABLE 为1 有效,回收使能 在CNT基础上再增加超时帧数 , 10=300 ms ,理论范围 [0-200],建议范围[0-20]
214
#endif
215
216
/*************************** 语音前端算法 config *****************************/
217
/*回声消除 AEC*/
218
#ifndef USE_AEC_MODULE
219
#define USE_AEC_MODULE 0
220
#endif
221
222
/*动态alc:ALC AUTO SWITCH*/
223
#ifndef USE_ALC_AUTO_SWITCH_MODULE
224
#define USE_ALC_AUTO_SWITCH_MODULE 0 //当噪音大于75db并且人声大于75db的情况,设置为1,可以提升一点识别;其他场景默认为0
225
#endif
226
227
/*是否codec录音只支持单个声道,需根据算法选择配合使用*/
228
#ifndef AUDIO_CAPTURE_USE_SINGLE_CHANNEL
229
#define AUDIO_CAPTURE_USE_SINGLE_CHANNEL 1
230
#endif
231
232
233
/*是否使用重采样*/
234
#ifndef INNER_CODEC_AUDIO_IN_USE_RESAMPLE
235
#define INNER_CODEC_AUDIO_IN_USE_RESAMPLE 1 //默认打开 0:不开重采样 1:打开重采样
236
#endif
237
238
239
240
/*根据codec使用的声道数来配置使用内存大小*/
241
#if !CONFIG_DIRVER_BUF_USED_FREEHEAP_EN
242
#if AUDIO_CAPTURE_USE_SINGLE_CHANNEL
243
#define AUDUI_CAPTURE_NO_USE_MALLOC_BLOCK_SIZE (512U)
244
#else
245
#define AUDUI_CAPTURE_NO_USE_MALLOC_BLOCK_SIZE (1024U)
246
#endif
247
#endif
248
249
250
/******************************** VP config **********************************/
251
252
//1:开启VP计算;0:关闭VP计算
253
// #ifndef USE_VP
254
// #define USE_VP 0
255
// #endif
256
257
// #ifndef VP_TEMPLATE_NUM
258
// #define VP_TEMPLATE_NUM 10
259
// #endif
260
261
/******************************** command word self-learning config **********************************/
262
#ifndef USE_CWSL
263
#define USE_CWSL 0 //命令词自学习(command word self-learning)
264
#endif
265
266
#ifndef CICWSL_TOTAL_TEMPLATE
267
#define CICWSL_TOTAL_TEMPLATE 32 //可存储模板数量
268
#endif
269
270
271
/**************************** audio player config ****************************/
272
/* 注册prompt解码器 */
273
#ifndef USE_PROMPT_DECODER
274
#define USE_PROMPT_DECODER 1
275
#endif
276
277
/* 注册mp3解码器 */
278
#ifndef USE_MP3_DECODER
279
#define USE_MP3_DECODER 1
280
#endif
281
282
/* 注册m4a(aac)解码器 */
283
#ifndef USE_AAC_DECODER
284
#define USE_AAC_DECODER 0
285
#endif
286
287
/* 注册ms wav解码器 */
288
#ifndef USE_MS_WAV_DECODER
289
#define USE_MS_WAV_DECODER 0
290
#endif
291
292
/* 注册flac解码器 */
293
#ifndef USE_FLAC_DECODER
294
#define USE_FLAC_DECODER 0
295
#endif
296
297
/* 命令词支持MP3格式音频,注意目前仅支持具有CI特殊头格式的MP3文件 */
298
#ifndef AUDIO_PLAY_SUPPT_MP3_PROMPT
299
#define AUDIO_PLAY_SUPPT_MP3_PROMPT 0
300
#endif
301
#if AUDIO_PLAY_SUPPT_MP3_PROMPT
302
#if !USE_MP3_DECODER
303
#error "if AUDIO_PLAY_SUPPT_MP3_PROMPT enabled please config USE_MP3_DECODER enable in your user_config.h"
304
#endif
305
#endif
306
307
/* 命令词支持FLAC格式音频,注意目前仅支持具有CI特殊头格式的FLAC文件 */
308
#ifndef AUDIO_PLAY_SUPPT_FLAC_PROMPT
309
#define AUDIO_PLAY_SUPPT_FLAC_PROMPT 0
310
#endif
311
#if AUDIO_PLAY_SUPPT_FLAC_PROMPT
312
#if !USE_FLAC_DECODER
313
#error "if AUDIO_PLAY_SUPPT_FLAC_PROMPT enabled please config USE_FLAC_DECODER enable in your user_config.h"
314
#endif
315
#endif
316
317
/* 命令词支持标准IMA ADPCM格式音频 */
318
#ifndef AUDIO_PLAY_SUPPT_IMAADPCM_PROMPT
319
#define AUDIO_PLAY_SUPPT_IMAADPCM_PROMPT 1
320
#endif
321
322
/* 解码器内存使用动态分配 */
323
#ifndef AUDIO_PLAY_USE_DYNAMIC_DECODER_MEM
324
#define AUDIO_PLAY_USE_DYNAMIC_DECODER_MEM 0
325
#endif
326
327
/* 数据组合播报 */
328
#ifndef AUDIO_PLAY_USE_QSPI_FLASH_LIST
329
#define AUDIO_PLAY_USE_QSPI_FLASH_LIST 0
330
#endif
331
332
/* 启用网络播放(需要lwip支持) */
333
#ifndef AUDIO_PLAY_USE_NET
334
#define AUDIO_PLAY_USE_NET 0
335
#endif
336
337
/* 启用自定义外部数据源播放 */
338
#ifndef AUDIO_PLAY_USE_OUTSIDE
339
#define AUDIO_PLAY_USE_OUTSIDE 0
340
#endif
341
342
/* 启用自定义外部数据源播放 */
343
#ifndef AUDIO_PLAY_USE_OUTSIDE_V2
344
#define AUDIO_PLAY_USE_OUTSIDE_V2 0
345
#endif
346
347
/* 启用文件系统播放 */
348
#ifndef AUDIO_PLAY_USE_SD_CARD
349
#define AUDIO_PLAY_USE_SD_CARD 0
350
#endif
351
353
#ifndef AUDIO_PLAY_USE_MIX_2_CHANS
354
#define AUDIO_PLAY_USE_MIX_2_CHANS 0
355
#endif
356
358
#ifndef AUDIO_PLAYER_CONFIG_AUTO_PARSE_AUDIO_FILE
359
#define AUDIO_PLAYER_CONFIG_AUTO_PARSE_AUDIO_FILE 0
360
#endif
361
363
#ifndef AUDIO_PLAY_USE_SPEEDING_SPEECH
364
#define AUDIO_PLAY_USE_SPEEDING_SPEECH 0
365
#endif
366
367
369
#ifndef AUDIO_PLAY_SUPPT_WAKEUP_VOICE_IN_RAM
370
#define AUDIO_PLAY_SUPPT_WAKEUP_VOICE_IN_RAM 0
371
#endif
372
374
#ifndef AUDIO_PLAYER_FIX_OFFSET_ISSUE
375
#define AUDIO_PLAYER_FIX_OFFSET_ISSUE 0
376
#endif
377
378
379
/****************************** 功放控制 config *******************************/
380
381
/*Whether the PA switch is controled by audio player*/
382
#ifndef PLAYER_CONTROL_PA
383
#define PLAYER_CONTROL_PA 0
384
#endif
385
386
387
/****************************** 串口协议 config *******************************/
388
#ifndef MSG_COM_USE_UART_EN
389
#define MSG_COM_USE_UART_EN 0
390
#endif
391
392
393
#ifndef UART_PROTOCOL_NUMBER
394
#define UART_PROTOCOL_NUMBER (HAL_UART1_BASE)// HAL_UART0_BASE ~ HAL_UART2_BASE
395
#endif
396
397
#ifndef UART_PROTOCOL_BAUDRATE
398
#define UART_PROTOCOL_BAUDRATE (UART_BaudRate9600)
399
#endif
400
401
#ifndef UART_PROTOCOL_VER
402
#define UART_PROTOCOL_VER 2 //串口协议版本号,1:一代协议,2:二代协议,255:平台生成协议(只有发送没有接收)
403
#endif
404
405
#ifndef UART0_PAD_OPENDRAIN_MODE_EN
406
#define UART0_PAD_OPENDRAIN_MODE_EN 0 //UART引脚开启开漏模式,支持5V电平。0:关闭开漏模式;1:开启开漏模式。
407
#endif
408
409
#ifndef UART1_PAD_OPENDRAIN_MODE_EN
410
#define UART1_PAD_OPENDRAIN_MODE_EN 0 //UART引脚开启开漏模式,支持5V电平。0:关闭开漏模式;1:开启开漏模式。
411
#endif
412
413
#ifndef UART2_PAD_OPENDRAIN_MODE_EN
414
#define UART2_PAD_OPENDRAIN_MODE_EN 0 //UART引脚开启开漏模式,支持5V电平。0:关闭开漏模式;1:开启开漏模式。
415
#endif
416
417
418
419
#ifndef UART_BAUDRATE_CALIBRATE
420
#define UART_BAUDRATE_CALIBRATE 0 //是否使能波特率校准功能
421
#endif
422
423
#if UART_BAUDRATE_CALIBRATE
424
425
#ifndef BAUDRATE_SYNC_PERIOD
426
#define BAUDRATE_SYNC_PERIOD 300000 // 波特率同步周期,单位毫秒
427
#endif
428
429
#ifndef BAUDRATE_FAST_SYNC_PERIOD
430
#define BAUDRATE_FAST_SYNC_PERIOD 5000 // 一次波特率校准识别后,下一次同步周期,单位毫秒
431
#endif
432
433
// #ifndef UART_CALIBRATE_FIX_BAUDRATE
434
// #define UART_CALIBRATE_FIX_BAUDRATE 9600 //通信波特率
435
// #endif
436
437
// #ifndef UART_CALIBRATE_MAX_ERR_PROPORITION
438
// #define UART_CALIBRATE_MAX_ERR_PROPORITION 0.08 //允许的最大误差比8%
439
// #endif
440
441
// #ifndef UART_CALIBRATE_ARRAY_SIZE
442
// #define UART_CALIBRATE_ARRAY_SIZE 16 //最大数据缓存
443
// #endif
444
445
// #ifndef UART_CALIBRATE_IO_BASE
446
// #define UART_CALIBRATE_IO_BASE PA //校准波特率的IO口(RX引脚)
447
// #endif
448
449
// #ifndef UART_CALIBRATE_IO_PIN
450
// #define UART_CALIBRATE_IO_PIN pin_2
451
// #endif
452
453
// #ifndef UART_CALIBRATE_IO_PAD
454
// #define UART_CALIBRATE_IO_PAD PA2
455
// #endif
456
457
// #ifndef UART_CALIBRATE_IRQ
458
// #define UART_CALIBRATE_IRQ PA_IRQn
459
// #endif
460
461
// #ifndef UART_CALIBRATE_TIMER
462
// #define UART_CALIBRATE_TIMER TIMER2
463
// #endif
464
465
// #ifndef UART_CALIBRATE_TIMER_BASE
466
// #define UART_CALIBRATE_TIMER_BASE HAL_TIMER2_BASE
467
// #endif
468
469
#endif
470
471
472
/***************************** flash加密 config ******************************/
473
/*flash防拷贝加密 */
474
#ifndef COPYRIGHT_VERIFICATION
475
#define COPYRIGHT_VERIFICATION 0 //1:使能flash加密校验,用于防止flash拷贝。需要在lds文件增加ROM段大小。0:禁止flash加密校验
476
#endif
477
478
#if (COPYRIGHT_VERIFICATION == 1)
479
#define ENCRYPT_DEFAULT 0 //默认加密算法
480
#define ENCRYPT_USER_DEFINE 1 //用户自定义加密算法
481
482
#define ENCRYPT_ALGORITHM ENCRYPT_DEFAULT //设置加密方式
483
#endif
484
485
486
/****************************** i2c communicate config *******************************/
487
#ifndef MSG_USE_I2C_EN
488
#define MSG_USE_I2C_EN 0
/*使能IIC通信协议*/
489
#endif
490
491
#ifndef I2C_PROTOCOL_SPEED
492
#define I2C_PROTOCOL_SPEED (100)
/*IIC传输速度*/
493
#endif
494
495
496
// 播报音配置
497
#ifndef PLAY_WELCOME_EN
498
#define PLAY_WELCOME_EN 1 //欢迎词播报 =1是 =0否
499
#endif
500
#ifndef PLAY_ENTER_WAKEUP_EN
501
#define PLAY_ENTER_WAKEUP_EN 1 //唤醒词播报 =1是 =0否
502
#endif
503
#ifndef PLAY_EXIT_WAKEUP_EN
504
#define PLAY_EXIT_WAKEUP_EN 1 //退出唤醒播报 =1是 =0否
505
#endif
506
#ifndef PLAY_OTHER_CMD_EN
507
#define PLAY_OTHER_CMD_EN 1 //命令词播报 =1是 =0否
508
#endif
509
510
/******************************ASR config************************************/
511
#ifndef ADAPTIVE_THRESHOLD
512
#define ADAPTIVE_THRESHOLD 0 //ASR 自适应阈值 =1 开启 =0 关闭
513
#endif
514
515
#ifndef ASR_SKIP_FRAME_CONFIG
516
#define ASR_SKIP_FRAME_CONFIG 0 //跳帧模式 0:关闭跳帧,1:只有命令词网络跳帧,2:所有模型都跳帧
517
#endif
518
#endif
/*_SDK_DEFAULT_CONFIG_H_*/
519
520
521
#define FLASH_CPU_READ_BASE_ADDR (0x50000000U)
522
523
524
525
#define VAD_SENSITIVITY_HIGH 1 // VAD 高灵敏度,适用于低音量语音,安静,或者各种噪声环境,但功耗偏高。
526
#define VAD_SENSITIVITY_MID 3 // VAD 中灵敏度,适用于安静及轻度噪声环境,功耗适中。
527
#define VAD_SENSITIVITY_LOW 9 // VAD 低灵敏度,仅适用于安静环境,降低误触发,也可以降低功耗。
528
529
530
#ifndef VAD_SENSITIVITY
531
#define VAD_SENSITIVITY VAD_SENSITIVITY_HIGH //用于配置VAD灵敏度
532
#endif
533
534
535
536
//语音相关的宏
537
/*********************** 使用外部IIS输入语音进行识别 *************************/
538
#ifndef AUDIO_IN_BUFFER_NUM
539
#define AUDIO_IN_BUFFER_NUM (4)
540
#endif
541
542
543
//使用IIS输出算法处理之后的语音
544
#ifndef USE_IIS1_OUT_PRE_RSLT_AUDIO
545
#define USE_IIS1_OUT_PRE_RSLT_AUDIO (0)
546
#endif
547
548
549
//根据 HOST_MIC_RECORD_CODEC_ID 确定
550
// #ifndef MIC_FROM_WHICH_IIS
551
// #define MIC_FROM_WHICH_IIS 1//0:MIC接外部CODEC 1:MIC接内部CODEC 2:MIC使用PDM
552
// #endif
553
554
555
//根据 PLAY_CODEC_ID 确定
556
// #ifndef USE_OUTSIDE_CODEC_PLAY
557
// #define USE_OUTSIDE_CODEC_PLAY 0//使用外部codec进行播放
558
// #endif
559
560
#ifndef HOST_MIC_RECORD_CODEC_ID
561
#define HOST_MIC_RECORD_CODEC_ID 1 //主MIC录音codec id: 0:主MIC接外部CODEC 1:主MIC接内部CODEC 2:主MIC使用PDM
562
#endif
563
564
#ifndef HOST_CODEC_CHA_NUM
565
#define HOST_CODEC_CHA_NUM 1 //主COEDC的通道数,使用双麦算法和单MIC AEC的时候都应是2
566
#endif
567
568
569
570
#ifndef ASSIST_MIC_RECORD_CODEC_ID
571
#define ASSIST_MIC_RECORD_CODEC_ID 2 //副MIC录音codec id: 0:副MIC接外部CODEC 1:副MIC接内部CODEC 2:副MIC使用PDM
572
#endif
573
574
575
#ifndef REF_RECORD_CODEC_ID
576
#define REF_RECORD_CODEC_ID 0 //参考信号录音codec id: 0:参考信号接外部CODEC 1:参考信号接内部CODEC 2:参考信号使用PDM,
577
#endif //只在参考和MIC使用不一样的CODEC时使用
578
579
#if ((HOST_MIC_RECORD_CODEC_ID + ASSIST_MIC_RECORD_CODEC_ID + REF_RECORD_CODEC_ID) != 3)
580
#error "error\n"
581
#endif
582
583
#if (ASSIST_MIC_RECORD_CODEC_ID == HOST_MIC_RECORD_CODEC_ID)
584
#error "error\n"
585
#endif
586
587
#ifndef PLAY_CODEC_ID
588
#define PLAY_CODEC_ID 1 //播音codec id 0:播报使用接外部CODEC 1:播报使用内部CODEC
589
#endif
590
591
592
#ifndef PLAY_PRE_AUDIO_CODEC_ID
593
#define PLAY_PRE_AUDIO_CODEC_ID 0 //播放预处理之后的语音的codec id 只能使用外部IIS,只能是0
594
#endif
595
596
597
#ifndef AUDIO_CAP_POINT_NUM_PER_FRM
598
#define AUDIO_CAP_POINT_NUM_PER_FRM (256)//采音每帧的点数 16K采样率下一帧的采样点数,160
599
#endif
600
601
602
#ifndef AUDIO_IN_FROM_DMIC
603
#define AUDIO_IN_FROM_DMIC 0 //是否使用数字MIC输入音频
604
#endif
605
606
/**********I2S interface config**********/
607
#ifndef USE_I2S_INTERFACE_SCK_LRCK_32
608
#define USE_I2S_INTERFACE_SCK_LRCK_32 0//I2S 传输语音数据到WIFI时,SCK与LRCK的比值是否为32,否则为64
609
#endif
610
611
612
#ifndef IF_JUST_CLOSE_HPOUT_WHILE_NO_PLAY
613
#define IF_JUST_CLOSE_HPOUT_WHILE_NO_PLAY 0//没有播报的时候只关HP:0:没有播报的时候关DAC(省电,但是蓝牙播报的时候会干扰ADC)
614
#endif
615
616
617
/************* 时钟源配置选择 *************************/
618
#ifndef USE_EXTERNAL_CRYSTAL_OSC
619
#define USE_EXTERNAL_CRYSTAL_OSC 1 //是否使用外部晶振。0:不使用外部晶振时钟;1:使用外部晶振时钟;默认使用外部晶振。
620
#endif
621
622
623
/************* 电源配置选择 *************************/
624
#ifndef USE_INNER_LDO3
625
#define USE_INNER_LDO3 1
626
#endif
627
628
630
#ifndef ON_LINE_SUPPORT
631
#define ON_LINE_SUPPORT 0 // 0: 关闭在线应用相关支持;1: 开启在线应用相关支持。
632
#endif
633
634
635
#if USE_EXTERNAL_CRYSTAL_OSC
636
#undef UART_BAUDRATE_CALIBRATE
637
#define UART_BAUDRATE_CALIBRATE 0 //使用外部晶振时,不需要校准波特率。
638
#endif
639
640
#ifndef MIC_DIFF_SINGLE
641
#define MIC_DIFF_SINGLE 0 //1,单端。0,差分(通用模块都是差分模式,省成本的模块为单端(MICN_L 接GND)时,需要配置为SINGLE)
642
#endif
643
644
#if (USE_LOWPOWER_DOWN_FREQUENCY)
645
#undef INNER_CODEC_AUDIO_IN_USE_RESAMPLE
646
#define INNER_CODEC_AUDIO_IN_USE_RESAMPLE 0
647
#endif
648
649
#ifndef ONE_SHOT_ENABLE
650
#define ONE_SHOT_ENABLE 0 //1:开启oneshot功能。0:关闭oneshot功能
651
#endif
制作者
1.8.14