我对编程很陌生,但我有一个问题。我想你可以很容易地回答这个问题。
我有这个代码
library(seewave)
library(tuneR)
date<-"WAHNHEIDE_20120711_"
clockings<-scan("testfile.txt", what="")
date.clock<-paste(date,clockings,sep="")
wave<-readWave("mywav.wav")
waveenv<-env(wave, f=48000, envt="hil", plot=FALSE)
thvalue<-th(waveenv)
wavespec<-meanspec(wave, f=48000, wl=1024, wn="hanning", plot=FALSE)
shvalue<-sh(wavespec)
index<-thvalue*shvalue
combine<-c(shvalue, thvalue, index)
write(combine, file="test.txt", append=TRUE, sep="\t")
我构建了一个包含许多要分析的文件名 (*.wav) 的字符串。我可以在“readWave()”部分插入我生成的所有文件名吗?这样我就可以运行脚本并计算在 date.clock 中生成的所有文件的 sh 和 th 值?这是容易还是难以编码?
谢谢您的帮助!干杯托比
好的,我认为这是最简单的方法,因为我只读取 wav 文件。
library(seewave)
library(tuneR)
files<-list.files(pattern=".wav")
for (i in 1:length(files)) {
wave<-readWave(files[i])
waveenv<-env(wave, f=48000, envt="hil", plot=FALSE)
thvalue<-th(waveenv)
wavespec<-meanspec(wave, f=48000, wl=1024, wn="hanning", plot=FALSE)
shvalue<-sh(wavespec)
index<-thvalue*shvalue
combine<-c(shvalue, thvalue, index)
write(combine, file="test.txt", append=TRUE, sep="\t")
}
:)