我想用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