Выбор диапазона частот для аудиофайлов с помощью fir {seewave} - PullRequest
0 голосов
/ 30 апреля 2020

Очень новый пользователь к аудио R связанному с вещами!

Мне нужно обработать кучу файлов и извлечь определенный частотный диапазон, скажем, от 500 до 2000 Гц. Учитывая определенный рабочий каталог, у меня есть:

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 дополнительных сомнения:

  1. Как я могу включить сюда строку кода для создания файлов WAV в моем рабочем каталоге вместо R объектов? Я не возражаю переключиться на lapply, если это необходимо.
  2. Что-то не так с моим кодом, так как я не могу впоследствии открыть аудиофайл в Raven (но я могу это сделать в Quicktime!). Любое предложение?

Спасибо!

1 Ответ

1 голос
/ 01 мая 2020

Вот пример использования 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...