sunsili 发表于 2021-12-9 23:13:58

【RT-Thread】mkromfs将音频文件制作成C语言数组的虚拟文件

【RT-Thread】mkromfs.py将音频文件制作成C语言数组的虚拟文件

最近笔者在应用中科蓝讯AB32VG1开要播放音频文件, 看例程有音频已转换C数组数据, 但教程没讲方法,只是说:
首先需要下载 romfs.c(本文件包含了两个音频文件用于demo播放) 替换 applications 下原有的 romfs.c

问原厂(中科蓝讯)技术支持, 也没得到确定答案, 在网上找了很久, 没找上方法, 听原厂支持用mkromfs可以转, romfs.c 注释:
/* Generated by mkromfs. Edit with caution. */也是说音频文件数据是用mkromfs生成, 那坚信是用mkromfs生成音频文件数据。


在网上找了很久,没这个工具下载。 差点就自己用C写一个工具了,以后会这么做的。


“众里寻他千百度 蓦然回首 那人却在灯火阑珊处”

“得来全不费工夫”

在每个rt-thread工程目录都有rt-thread\tools\mkromfs.py (这个tools目录下,也没有很多python脚本工具, 没用到,还不清楚它们的用法, 以后, 需要什么工具,先在这里找找。。。。。



看看是怎么用的吧,首先,得有python环境,还有以前用过python, RT-Thread studio 配置及编译工具都要用python, 之前没安装python 也没关系,找到RT-Thread studio安装目录下, 也有python, 把python设置环境变量量, 相信搞开发的,这个都 会了, 不再赘述。

.\platform\env_released\env\tools\Python27

题外话:RT-Thread studio用的是Python2.7版本,应该升级一下了

看看这个mkromfs.py用法吧

在RTT工程目录都有rt-thread\tools\目录下,按住shift键,在空白处鼠标右击->在此处打开命令窗口

可快速,打开命令窗口定位到此目录

输入命令:
python mkromfs.py -h
第一次,使用命令, 不明白怎么用, 都可以这样的方法, 查看帮助,现用法介绍如下:
usage: mkromfs.py [-h] [--dump] [--binary] [--addr ADDR] rootdir

positional arguments:
rootdir      the path to rootfs
output       output file name

optional arguments:
-h, --help   show this help message and exit
--dump       dump the fs hierarchy
--binary   output binary file
--addr ADDRset the base address of the binary file, default to 0.


大概明白用法了

然后新建的一个目录

mkdir wav

在wav目录下, 放入要转的wav格式的音频文件。

再说说wav处理吧, 根据原厂(中科蓝讯)技术支持的说法, 采样率要求48KHz, 编码格式 16bits PCM


把采样率不是48KHz,转成采样率48KHz


然后,导出wav文件,选择编码格式 16bits PCM



生成romfs.c, 输入命令:
python mkromfs.py wav romfs.c
把之前rt-thread工程里romfs.c替换掉, 重新编译。

烧录开发板, 能播放了, 但声音变了。

遗留疑难问题
声音为什么会变了呢? 采样率话, 已经转换了.





页: [1]
查看完整版本: 【RT-Thread】mkromfs将音频文件制作成C语言数组的虚拟文件