R 如何将seewave频谱图转换为wav文件
我想操作一个R 如何将seewave频谱图转换为wav文件,r,audio,spectrogram,R,Audio,Spectrogram,我想操作一个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_t
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,...)
我在seewave
文档中找不到任何与spectro2wave
相近的东西
你们知道一种方法如何将它转换回来,而不必深入到
wav
文件规范并手动执行吗?谢谢大家! 结果是相对简单!我遗漏的一个重要关键词是“短时傅里叶变换”——seewave::spectro
基本上就是这样做的。在谷歌搜索“逆短时傅里叶变换”后,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,f=tico@samp.rate,ovlp=50,wl=512,output = "Wave")
现在请欣赏Zonotrichia capensis(*)的声音
(*)如果执行
play
命令,您可以听到这只鸟的声音: @Vlo我使用complex=TRUE
-因此我将从FFT中获取复数。我应该能够从复数中获得相位。@Vlo我不确定您是否收到此评论的通知,因为您已经删除了您的评论-但以防您感兴趣:我已经找到了解决方案。感谢您提供了有趣的链接。如果操作系统默认情况下未正确设置play
,请使用listen
命令。
#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!