如何将 seewave 频谱图转换为 wav 文件
How to convert a seewave spectrogram into a wav file
我想处理 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
文档中找不到任何接近 spectr2Wave
的内容。
你们知道如何在不深入研究 wav
文件规范并手动执行的情况下将其转换回来的方法吗?谢谢!
原来还比较简单!我遗漏的重要关键字是 "short-time Fourier transformation" - seewave::spectro
基本上就是这样做的。在谷歌搜索“inverse short-time Fourier transformation”后,seewave
function 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 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
命令,那是您可以听到的鸟叫声。 :)
我想处理 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
文档中找不到任何接近 spectr2Wave
的内容。
你们知道如何在不深入研究 wav
文件规范并手动执行的情况下将其转换回来的方法吗?谢谢!
原来还比较简单!我遗漏的重要关键字是 "short-time Fourier transformation" - seewave::spectro
基本上就是这样做的。在谷歌搜索“inverse short-time Fourier transformation”后,seewave
function 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 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
命令,那是您可以听到的鸟叫声。 :)