查看: 47|回复: 0

[原创] 基于i.MXRT4 digit修改SDK例程本地音源内容

[复制链接]

该用户从未签到

724

主题

6383

帖子

0

超级版主

Rank: 8Rank: 8

积分
25595
最后登录
2025-9-19
发表于 3 天前 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2025-9-18 15:59 编辑

基于i.MXRT4 digit修改SDK例程本地音源内容

近期,我们收到了使用用 i.MXRT4 digit 芯片的客户反馈,他们在应用 NXP SDK lib 中的示例程序 evkbmimxrt1XXX_sai_edma_transfer 时遇到了问题,该程序虽能通过 EDMA 通道播放存储于 Flash/SRAM 的音频数据,但其内置音源较为基础,难以满足定制化需求。

为切实解决这一痛点,本文将聚焦于 i.MXRT4 digit 平台,详细阐述如何借助相关软件工具对 SDK 例程中的本地音源内容进行灵活修改。具体而言,我们将以 MIMXRT1160-EVKB 开发板为硬件载体,结合第三方辅助工具,深入解析实现音源内容个性化定制的方法与步骤。
开发板: MIMXRT1060-EVKBboard(无需外接 CS42448 声卡)
连接方式:耳机插入 J34 接口(默认输出端口)
软件工具
Picture1.png
本文主要分三章:
第一章:准备音源,将想要播放的音源转换成wav格式
第二章:简介wav文件格式,裁剪所需raw data数据
第三章:将wav文件数据块转换成C语言可识别的数组

第一章: 音源转换成.wav文件格式

首先第一部分,我们找到想要播放的音源,本文以.mp3格式为例。
我使用工具生成比较常用的mp3格式音源,内容是“hello world, Hello NXP.”, 感兴趣的同学可以下载附件,名称是HelloWorld.mp3。大家也可以使用自己想要播放的mp3格式音源。
Audiocity是一款功能强大且免费的跨平台音频编辑软件,本文使用该软件的格式转换功能,将MP3转换为.wav格式。
需要我们特别注意的是转换成.wav格式需要和NXP SDK lib中例程格式一致。
我们查看evkbmimxrt1060_sai_edma_transfer例程,可知音频格式是16KHz采样率,2通道,16bit位宽。Audiocity软件转换wav格式必须和例程保持一致。
详情请参见下图所示。
Picture2.png Picture3.png



第二章: 简介wav文件格式,裁剪所需raw data数据
这里可以借助现有的软件工具,也可以使用python脚本实现。
本文介绍使用WinHex工具实现将wav格式音源生成C语言数组。
网上有很多网页资源介绍wav格式,下面给大家简单介绍一下常见的wave文件的格式。  
WAV文件遵循RIFF规则,其内容以区块(chunk)为最小单位进行存储。WAV文件一般由3个区块组成:RIFF chunk、Format chunk和Datachunk。
Picture4.png

因为SDKdemo播放的是Raw data数据,因此需要将wav文件的前44个字节去掉,只保留data数据块。

第三章:将wav文件数据块转换成C语言可识别的数组
将.wav格式音源生成C语言可识别的数据,这里我们使用WinHex软件打开第一章生成的HelloWorld.wav文件,根据第二章的wav文件结构解析,我们在第44个字节处开始选中为开始,然后选择文件最后一个字节,最后右键选择Copy Block->C Source

Picture5.png

然后粘贴到文本并保存,如下图所示:
Picture6.png

到这里我们就获取了所需要的音频C语言数组,我们需要将这个数组替换SDK 例程的音频数据。
位置evkbmimxrt1060_sai_edma_transfer例程music.h头文件  music 数组。

在这里我们需要注意,一定要根据生成的C语言数组字节数修改宏定义MUSIC_LEN,生成的C语言数组字节数是130000,因此修改代码 #define MUSIC_LEN     (130000) 。

编译工程,并将工程烧写进MIMXRT1060-EVKB开发板,将耳机连接到J34, 我们就可以听到第一章生成的语音内容 ” hello world, Hello NXP.”
我们也可以通过修改宏定义#define CODEC_VOLUME_MAX_VALUE (100U),来调整音量大小。

以上就是基于i.MXRT4 digit修改SDK例程本地音源内容全部过程,感兴趣的同学可以参考并验证。




回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-21 04:51 , Processed in 0.084113 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表