如何获取频率数组并从wav文件中提取一系列频率

时间:2017-04-05 17:56:37

标签: r audio

readWave('hello.wav',from=0,to=1,units='seconds')
plot(hello@left,xlab="time",ylab="freq")  

但是如何在应用短时傅里叶变换之前获得频率数组并在R中取出特定的频率范围?例如,[60,300] Hz为成年男子并将其保存为另一个wav。文件。

1 个答案:

答案 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")