【发布时间】:2021-06-28 11:52:12
【问题描述】:
尝试在 R 中将一堆音频 (.WAV) 文件切割成更小的样本。对于这个示例,我使用循环在 140 分钟时切割出 1 分钟的样本。
对于某些文件,由于录制设备出错,录制会在 140 分钟前结束。发生这种情况时,会出现错误——并且循环停止。我正在尝试通过使用 try 或 tryCatch 函数继续循环,但不断收到错误。
代码如下:
for(i in 1:length(AR_CD288)){
CUT_AR288_5 <- try({readWave(AR_CD288[i], from = 140, to = 141, units = "minutes")})
FILE.OUT_AR288_5<- sub("\\.wav$", "_140.wav", AR_CD288)
OUT.PATH_AR288_5 <- file.path("New files", basename(FILE.OUT_AR288_5))
writeWave(CUT_AR288_5, extensible=FALSE, filename = OUT.PATH_AR288_5[i])
}
我从代码中得到以下两个错误:
Error in readBin(con, int, n = N, size = bytes, signed = (bytes != 1), :
invalid 'n' argument
Error in writeWave(CUT_AR288_5, extensible = FALSE, filename = OUT.PATH_AR288_5[i]) :
'object' needs to be of class 'Wave' or 'WaveMC
循环仍然将一些样本保存到“新文件”目录中,但是,一旦循环到达
我很困!任何帮助将不胜感激。
干杯。
【问题讨论】:
-
为什么你只在循环的第一行使用
try?将整个循环体包裹在try中。