readWave('hello.wav',from=0,to=1,units='seconds')
plot(hello@left,xlab="time",ylab="freq")
但是如何在应用短时傅里叶变换之前获得频率数组并在R中取出特定的频率范围?例如,[60,300] Hz为成年男子并将其保存为另一个wav。文件。
答案 0 :(得分:2)
听起来你要求使用频率带通滤波器。包seewave
具有合适的功能fir
,(and a lot of other useful things)。
library(tuneR)
library(seewave)
hello <- readWave("hello.wav")
hello.bp <- fir(hello, from=60, to=300, output="Wave")
hello.bp <- normalize(hello.bp, unit=as.character(hello.bp@bit))
meanspec(hello.bp, log="x")
writeWave(hello.bp, "hello.bp.wav")