gpt4 book ai didi

r - 使用fir {seewave}选择音频文件的频率范围

转载 作者:行者123 更新时间:2023-12-03 00:24:42 25 4
gpt4 key购买 nike

音频R相关内容的新手!

我必须处理一堆文件并提取一个特定的频率范围,比如说从500到2000 Hz。
给定某个工作目录,我有:

myFiles <- list.files() 

for(i in seq_along(myFiles)){
track <- readWave(myFiles[[i]])
track <- fir(track, from=500, to=2000,output="Wave")
track <- normalize(track, unit = as.character(track@bit))
assign(paste0("pista",i),track)
}

我认为 fir中的 seewave是执行此操作的正确功能,但我还有2个疑问:
  • 如何在此处添加一行代码以在我的工作目录中而不是R对象中创建wav文件?如果有必要,我不介意交换到lapply
  • 我的代码出了点问题,因为之后我无法在Raven中打开音频文件(但是我可以在Quicktime中打开!)。有什么建议吗?

  • 谢谢!

    最佳答案

    这是一个使用lapply的示例。

    library(seewave)
    # Make some files to test with
    writeWave(noise(kind='pink'), filename = 'example1.wav')
    writeWave(noise(kind='white'), filename = 'example2.wav')

    myFiles <- list.files(pattern = 'example')

    myfilterandsave <- function(files, index) {
    track <- readWave(files[index])
    filtered <- fir(track, from=500, to=2000, output='Wave')
    normalized <- normalize(filtered, unit = as.character(filtered@bit))
    name <- paste0('filtered',index, files[index])
    writeWave(object = normalized, filename = name)
    cat(name, '\r\n')
    }

    lapply(seq_along(myFiles), function(i) myfilterandsave(myFiles, i))

    关于r - 使用fir {seewave}选择音频文件的频率范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61518105/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com