一、概述

本地(嵌入式)提示音是通过将预先录制的wav文件转换为TXT文件,然后将其包含到头文件中,从而将预设的提示音与其他程序和数据一起进行编码,并内置到主程序文件中。其中每个音频被编码为二进制数据并初始化为数组,然后将数组映射到一个声音映射结构,这样就可以在需要的时候调用和播放它们。下面我们就来学习一下如何制作以及配置提示音。

二、制作提示音

1.获取音频

音频可以通过手机录音、网上的音频资源等获取,这里不过多赘述。

2.处理音频

不同音源的采样率不同,这里我们以16k采样率为例(BES默认提示音采样率),我们可以使用一些软件转换采样率,如Adobe AuditionCool Edit Pro2.1

(1)Adobe Audition

  • 打开软件,并导入原始音频文件(录音)。

  • 点击F11,修改设置:采样率16kHz单声道位数16it

  • 根据需求对音频进行剪辑处理。
  • 保存,点击文件另存为,选择格式为Wave PCMWindows PCM(不同版本软件选项可能不同),且文件名为.wav,点击确定即可。

(2)Cool Edit Pro2.1

  • 点击按钮,导入音源文件。

  • 快捷键 F11。修改设置:采样率16kHz单声道 、位数 16bit

  • 保存为windows PCM

三、音频转换

1.工具下载

转换需要用到wav2sbc工具,点击下载

2.转换

将需要转换的wav文件全部放置在wav2sbc工具的根目录下,按照 README.txt 文件中的说明操作,会分别生成 pcm文件 sbc文件 TXT文件 ,其中TXT文件是我们需要的。

四、文件替换

1.音源定位

 打开\config\_default_cfg_src_\res\目录,如下图所示存在多个子文件夹,表示不同操作环境下的语音提示,例如,en包含英文提示音cn包含中文提示音。根据需求将生成的txt文件移动到en或cn目录下,并修改文件名。

2.文件包含

建立音频数组,指向对应音频文件,英文在 res_audio_data.h,中文在 res_audio_data_cn.h。例如,增加英文开机提示音,先建立EN_POWER_ON数组,并将提示音的相对路径res/en/SOUND_POWER_ON.txt使用下图形式包含其中。

3.设置语言和长度

app_meida_player.cpp文件中找到函数media_runtime_audio_prompt_update,若有必要,可以将下图所示代码处的case项改为自定义ID,

或在resources.h文件中添加自定义ID。

需要注意的是,语音提示的默认音频采样率为16000,如果要更换原有的采样率,需要同时调整编码,需要在app_meida_player.cpp文件中app_play_audio_onoff函数中找到如下代码,并改为需要的采样率即可。

4.应用层封装

如果上层需要使用到语音提示,如 apps.cpp ,可以 app_status_ind.h 文件中的 APP_STATUS_INDICATION_T中添加 新提示音ID,通过 app_voice_report_handler 接口 就可以随时在上层调用该提示音。

后续会单独出一期讲解提示音模块的代码逻辑,所以本期就不过多赘述。多有不足,还望补充指正!!!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐