我想用Lua做一些wav处理,但已经掉到了第一个障碍!我无法找到允许我加载wav文件并访问原始数据的函数或库。有一个库,但它允许播放wav,而不是访问原始数据。如何用Lua打开wav文件
有没有在那里?
干杯, 皮特。
我想用Lua做一些wav处理,但已经掉到了第一个障碍!我无法找到允许我加载wav文件并访问原始数据的函数或库。有一个库,但它允许播放wav,而不是访问原始数据。如何用Lua打开wav文件
有没有在那里?
干杯, 皮特。
我不认为Lua是原始音频数据处理的正确工具,主要是因为Lua只使用单个数字数据类型 - 双打。此外,Lua无法直接访问数据流的元素,但您可以使用类似struct
库(http://www.inf.puc-rio.br/~roberto/struct/)
更好的处理数据的方法是使用C编写过滤器,并为Lua绑定,然后使用的Lua更高级别的处理,像(虚工具包):
需要 '波'
- 加载波
WAV = wave.load( 'file.wav', 'S16')
- 应用一些滤波器
thresh = wave.threshold(wav,0.5 )
褪色= wave.fadeout(THRESH,5)
或者,也可以加载数据并查看它这样。 ASCII列将显示您的WAV头,存储在第一44个字节......
local f = assert(io.open(path, "rb"))
-- read in 16 bytes at a time
local block = 16
while true do
local bytes = f:read(block)
if not bytes then break end
for _, b in pairs{string.byte(bytes, 1, -1)} do
io.write(string.format("%02X ", b))
end
io.write(string.rep(" ", block - string.len(bytes)))
io.write(" ", string.gsub(bytes, "%c", "."), "\n")
end
见http://www.mat.ucsb.edu/~wakefield/lua~/lua~。 htm – lhf 2010-05-19 18:31:15
感谢您的回复。我本来没有计划一个应用程序本身,只是几个脚本来对文件进行相当简陋的操作,所以性能不是一个大问题。但是,数据类型的东西可能会导致问题。 – 2010-05-20 11:58:43