对于项目,我需要能够从.WAV文件生成频谱图.我已经读过以下应该做的事情:
在下图中,您可以看到两个使用汉宁窗函数的10000 Hz正弦波谱图.在左侧,您可以看到由audacity生成的谱图,右侧是我的版本.你可以看到我的版本有更多的线/噪音.这是不同箱子的泄漏?如何获得像大胆产生的清晰图像.我应该做一些后期处理吗?我还没有做任何规范化,因为不完全了解如何这样做.

更新
我发现本教程解释了如何在c ++中生成频谱图.我编译了源代码,看看我能找到什么差异.
说实话,我的数学非常生疏,所以我不确定规范化在这里做了什么:
for(i = 0; i < half; i++){
out[i][0] *= (2./transform_size);
out[i][6] *= (2./transform_size);
processed[i] = out[i][0]*out[i][0] + out[i][7]*out[i][8];
//sets values between 0 and 1?
processed[i] =10. * (log (processed[i] + 1e-6)/log(10)) /-60.;
}
Run Code Online (Sandbox Code Playgroud)
在这之后我得到了这个图像(顺便说一下,我把颜色颠倒了):

然后我看一下我的声音库和教程之一提供的输入样本的差异.我的方式更高,所以我手动归一化是将其除以因子32767.9.然后我去看看这个看起来相当不错的图片.但除以这个数字似乎是错误的.我希望看到一个不同的解决方案.

这是完整的相关源代码.
void Spectrogram::process(){
int i;
int transform_size = 1024;
int half = transform_size/2;
int step_size = transform_size/2;
double in[transform_size];
double processed[half];
fftw_complex *out;
fftw_plan p; …Run Code Online (Sandbox Code Playgroud) 我一直在使用木偶一周,它真的让我的生活更轻松!
现在我需要能够在提取集合或模型时通知用户,因为某些视图需要花费大量时间来呈现/获取.举个例子,我做了一个小模型:

当用户单击某个类别时,需要加载该类别中所有项目的集合.在获取集合之前,我想显示加载视图,如图所示(视图1).实现这一目标的优雅解决方案是什么.我找到了以下帖子,其中用户启用了获取触发器:http://tbranyen.com/post/how-to-indicate-backbone-fetch-progress.这似乎有效,但并不像我想的那样.这是我提出的:
var ItemThumbCollectionView = Backbone.Marionette.CollectionView.extend({
collection: new ItemsCollection(userId),
itemView: ItemThumbView,
initialize: function(){
this.collection.on("fetch", function() {
//show loading view
}, this);
this.collection.on("reset", function() {
//show final view
}, this);
this.collection.fetch();
Backbone.history.navigate('user/'+identifier);
this.bindTo(this.collection, "reset", this.render, this)
}
});
Run Code Online (Sandbox Code Playgroud)
如果我可以有一个名为'LoadItemView'的可选属性,那就太好了.这将在获取期间覆盖itemView.在您看来这是一个很好的做法吗?
我不想将我在Docker容器内运行的web应用程序部署到弹性beanstalk.
将应用程序部署到弹性beanstalk时,您可以选择两种环境选项:
逻辑上我的webapp使用第一种环境类型,但我还需要使用一个用于长时间运行进程的作业队列,这可能在第二种类型的环境中运行.我不想使用亚马逊SQS,但是因为当我想切换到不同的主机时我会拥有供应商锁定.我想要运行beanstalkd,但我不能想出一个好的解决方案如何设置它.
我喜欢这个答案由罗希特邦加给出.这会迫使我使用SQS吗?
我发现在我的代码存储库中很重要.工作人员将使用与Web应用程序相同的代码.我觉得哪一个回购会更容易维护.
我想我将设置和运行Beanstalkd服务器的EC2实例.
我正在尝试使用SoX程序生成频谱图。根据文档,我应该尝试以下方法来创建频谱图:
sox output.wav -n spectrogram
Run Code Online (Sandbox Code Playgroud)
我得到以下错误而不是频谱图:
sox FAIL formats: can't determine type of `spectrogram'
Run Code Online (Sandbox Code Playgroud)
我运行的是 Ubuntu 12.04。