【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键,在空白处鼠标右击->在此处打开命令窗口
可快速,打开命令窗口定位到此目录
输入命令:
第一次,使用命令, 不明白怎么用, 都可以这样的方法, 查看帮助,现用法介绍如下:
- usage: mkromfs.py [-h] [--dump] [--binary] [--addr ADDR] rootdir [output]
- 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 ADDR set the base address of the binary file, default to 0.
复制代码
大概明白用法了
然后新建的一个目录
在wav目录下, 放入要转的wav格式的音频文件。
再说说wav处理吧, 根据原厂(中科蓝讯)技术支持的说法, 采样率要求48KHz, 编码格式 16bits PCM
把采样率不是48KHz,转成采样率48KHz
然后,导出wav文件,选择编码格式 16bits PCM
生成romfs.c, 输入命令:
- python mkromfs.py wav romfs.c
复制代码
把之前rt-thread工程里romfs.c替换掉, 重新编译。
烧录开发板, 能播放了, 但声音变了。
遗留疑难问题
声音为什么会变了呢? 采样率话, 已经转换了.
|