10.7. 范例码及板端初步测试¶
10.7.1. 范例码说明¶
User-Get Mode : |
优点:SDK使用者可以拿到并侧录每个audio frame状态。 使用者在应用层可以drop / delay / copy 等操作。 缺点:SDK使用者在应用层需自行开线程做get / send 动作。 |
Bind Mode : |
优点:SDK用户只要创建完通道参数,只须负责拿取或播送资料。缺点:应用层无法调配及观测目前状态。 |
Uplink Audio (收音->编码):
参照码源: cvi_sample_audio.c
: SAMPLE_AUDIO_AiAenc
User-Get Mode示意图如上
Bind Mode 示意图如上
Downlink Audio (解碼->播音):
参照码源: cvi_sample_audio.c
: SAMPLE_AUDIO_AdecAo
User-Get Mode示意图如上
Bind Mode 示意图如上
10.7.2. 板端初步测试¶
随项目释出的版本不同,如须与应用工程人员同步时,音频版本信息显得相当重要,用户拿到SDK 软件后,可以透过音频相关软件得知版本以及板子音频状态。sample_audio 执行程序所对应的内容即为 cvi_sample_audio.c
内的实做。
客制化板子初期,使用者可以透过下列方式先做双声道录音,确认储存的档案有音频波形,确认输入端正确,并可在录音后直接双声道播音确认喇叭运作正常。
[了解你的Audio SDK版本]:
sample_audio 7
console会显示如下:
version [cviaudio_2021_tinyalsa0407A]
其中[]内所显示的即为音频版本信息。
[录音范例码]:
sample_audio 19
cvi_sample_audio.c
,case 19。当console画面出现 :
———————————>start recording…
开始依据使用者设定秒数录音,并存盘为sample_record.raw
[播音范例码]:
sample_audio 20 檔名.raw
对应范例码流程: cvi_sample_audio.c ,case 20。
依序提示使用者播音时的参数设定,使用者可以直接键入enter 使用默认值(如下图)。
当console画面出现 :
———————————>start playing…
开始依据用户配置文件名播音。
音频释出动态链接文件(Audio Release SO file),请确保项目释出的SDK内有以下lib以保证音频SDK API完整性:
名称 |
功能 |
---|---|
libcvi_audio.so |
Audio API 对接层 |
libcvi_RES1.so |
Audio 重采样模块 |
libcvi_VoiceEngine.so |
Audio 编解碼模块 |
libcvi_vqe.so |
Audio 算法对接层 |
libssp.so |
Audio SSP(含AEC)算法 |
libaec.so |
Audio AEC 算法 |
libtinyalsa.so |
Audio 音频录音播音ALSA层 |
libaacenc2.so |
AAC 编码相关-正式文件请洽FAE人员 |
libaacdec2.so |
AAC 译码相关-正式文件请洽FAE人员 |