谷动谷力

 找回密码
 立即注册
查看: 3117|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
发表于 2021-12-9 23:13:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
【RT-Thread】mkromfs.py将音频文件制作成C语言数组的虚拟文件

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


问原厂(中科蓝讯)技术支持, 也没得到确定答案, 在网上找了很久, 没找上方法, 听原厂支持用mkromfs可以转, romfs.c 注释:
  1. /* 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设置环境变量量, 相信搞开发的,这个都 会了, 不再赘述。

  1. .\platform\env_released\env\tools\Python27
复制代码


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

看看这个mkromfs.py用法吧

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

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

输入命令:
  1. python mkromfs.py -h
复制代码

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

  2. positional arguments:
  3.   rootdir      the path to rootfs
  4.   output       output file name

  5. optional arguments:
  6.   -h, --help   show this help message and exit
  7.   --dump       dump the fs hierarchy
  8.   --binary     output binary file
  9.   --addr ADDR  set the base address of the binary file, default to 0.
复制代码



大概明白用法了

然后新建的一个目录

  1. mkdir wav
复制代码


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

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


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


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



生成romfs.c, 输入命令:
  1. python mkromfs.py wav romfs.c
复制代码

把之前rt-thread工程里romfs.c替换掉, 重新编译。

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

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





+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-12-27 07:45 , Processed in 0.087604 second(s), 40 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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