如何将Seewave频谱图转换为WAV文件

cryo111

我想操作seewave音频频谱图,然后将其转换回.wav文件。一个简单的例子

library(tuneR)
library(seewave)

data(tico)
#generate spectrogram with phase information
spec_tico=spectro(tico,plot=FALSE,complex=TRUE,norm=FALSE,dB=NULL)
#manipulate spectrogram
spec_tico_new=dostuff(spec_tico)
#convert back into Wave object - but there is no function spectr2Wave!
tico_new=spectr2Wave(spec_tico_new,...)

我无法spectr2Waveseewave文档中找到任何内容。

你们知道一种如何将其转换回而无需深入研究wav文件规范并手动进行的方法吗?谢谢!

cryo111

原来是比较简单的!我缺少的重要关键字是“短时傅立叶变换”-seewave::spectro基本上就是这样。google搜索“后短时傅立叶变换”的seewave功能istft出现了。

library(tuneR)
library(seewave)

data(tico)
#generate spectrogram with phase information
spec_tico=spectro(tico,plot=FALSE,complex=TRUE,norm=FALSE,dB=NULL,ovlp=50)
#convert back into Wave object
tico_new=istft(spec_tico$amp,[email protected],ovlp=50,wl=512,output = "Wave")

现在享受Capo Zonotrichia capensis的声音(*)

#play on Windows
play(tico_new)
#play on Linux with vlc (or any other player ...)
play(tico_new,player="cvlc")
#on Linux you have to kill the two vlc processES afterwards!

(*)是执行play命令后可以听到的鸟:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章