![](/img/trans.png)
[英]How to shift timestamps in multiple sequential file names (wav files, from bioacoustic monitoring) using R
[英]How to load sound files and data in R for bioacoustic analysis (MonitoR)?
我正在嘗試遵循 R 指南中的這種生物聲學,以幫助我對一些青蛙啁啾進行分析。 我也在看這個MonitoR 指南,因為他們試圖完成同樣的事情(使用模板來運行聲音文件)。
由於我有超過 30,000 個青蛙聲音文件,每個文件大小約為 5 MB,因此我創建了一個“虛擬”文件夾,其中包含 20 個隨機青蛙聲音文件和 5 個模板文件。 我認為這會讓事情變得更快,一旦我的代碼完全工作,我會調整文件夾名稱。
我在 R Studio 工作,聲音文件是 WAV 文件。
我已經使用library(monitoR, warbleR)
加載了 MonitoR 和 WarbleR,我認為已經成功加載了它們。
然后我將我的工作目錄設置為包含 20 個青蛙文件和 5 個 chirp 模板文件的“虛擬”文件夾。 我知道當我調用list.files()
時它們都出現了。
> list.files()
[1] "frog1.WAV" "frog10.WAV" "frog11.WAV"
[4] "frog12.WAV" "frog13.WAV" "frog14.WAV"
[7] "frog15.WAV" "frog16.WAV" "frog17.WAV"
[10] "frog18.WAV" "frog19.WAV" "frog2.WAV"
[13] "frog20.WAV" "frog3.WAV" "frog4.WAV"
[16] "frog5.WAV" "frog6.WAV" "frog7.WAV"
[19] "frog8.WAV" "frog9.WAV" "template_test1.WAV"
[22] "template_test2.WAV" "template_test3.WAV" "template_test4.WAV"
[25] "template_test5.WAV"
這是第一個指南的第二步,無論我如何嘗試和調整它,我都會不斷收到錯誤消息。
第 1 步有這個:
x<-c("warbleR", "monitoR")
我理解為加載包的那一點,雖然我不知道 x 和 c 在那里做什么......
if(.y %in% installed,packages()[."Package"]) install,packages(y) require(y. character.only = T) })
我不知道那個位是做什么的......但是包括它或排除它對下一步中的錯誤消息沒有影響。
第 2 步是創建模板以及我遇到的問題:
指南說: #加載聲音文件和數據
data(list = c("Phae.long1", "Phae.long2", "Phae.long3", "Phae.long4", "selec.table"))
我不確定代碼的selec.table
位是做什么的,但同樣,包括或排除它對錯誤消息沒有影響。
我嘗試的代碼是:
data(list = c("template_test1", "template_test2", "template_test3", "template_test4", "template_test5", "selec.table"))
並引發以下錯誤:
警告消息:1:在 data(list = c("template_test1", "template_test2", "template_test3", : data set 'template_test1' not found 2: In data(list = c("template_test1", "template_test2", " template_test3", : 未找到數據集 'template_test2' 3: 在 data(list = c("template_test1", "template_test2", "template_test3", : 未找到數據集 'template_test3' 4: In data(list = c(" template_test1", "template_test2", "template_test3", : 未找到數據集 'template_test4' 5: In data(list = c("template_test1", "template_test2", "template_test3", : 未找到數據集 'template_test5'
我已經嘗試了兩個指南中建議的步驟(沒有成功)並在網上尋找我哪里出錯了,但恐怕我很難過。 在分析這個數據集之前,我在 R 中還有很長的路要走,因此非常感謝任何閱讀本文的人提供的幫助。 謝謝。
我認為這就是想法,盡管在我的筆記本電腦上運行它需要很長時間:
library(monitoR)
library(tuneR)
file1 <- "Phae.long1.wav"
file2 <- "Phae.long2.wav"
file3 <- "Phae.long3.wav"
file4 <- "Phae.long4.wav"
viewSpec(file1)
wct1 <- makeCorTemplate(file1,
t.lim=c(0, 1.0),
wl = 300,ovlp=90,
frq.lim=c(0.1, 11), dens=1, name="file1")
wct2 <- makeCorTemplate(file2,
t.lim=c(0, 1.0),
wl = 300,ovlp=90,
frq.lim=c(0.1, 11), dens=1, name="file2")
wct3 <- makeCorTemplate(file3,
t.lim=c(0, 1.0),
wl = 300,ovlp=90,
frq.lim=c(0.1, 11), dens=1, name="file3")
wct4 <- makeCorTemplate(file4,
t.lim=c(0, 1.0),
wl = 300,ovlp=90,
frq.lim=c(0.1, 11), dens=1, name="file4")
ctemps <- combineCorTemplates(wct1, wct2, wct3, wct4)
audio <- readWave("mybigfile.wav")
audio <- changeSampRate(wchange = audio, sr.new = 22500)
cscores <- corMatch(survey = audio, templates = ctemps, write.wav = T)
cdetects <- findPeaks(cscores)
getDetections(cdetects)
plot(cdetects)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.