小编Sre*_*i R的帖子

如何将.wav文件转换为python3中的频谱图

我试图从python3中的.wav文件创建一个频谱图.

我希望最终保存的图像看起来与此图像类似:

我尝试过以下方法:

这个堆栈溢出帖子: 波形文件的谱图

这篇文章有点奏效了.运行后,我得到了

但是,此图表不包含我需要的颜色.我需要一个有颜色的光谱图.我尝试修补这些代码尝试添加颜色但是在花费了大量时间和精力之后,我无法理解它!

然后我尝试了教程.

当我尝试使用错误TypeError运行它时,此代码崩溃(在第17行):'numpy.float64'对象不能被解释为整数.

第17行:

samples = np.append(np.zeros(np.floor(frameSize/2.0)), sig)
Run Code Online (Sandbox Code Playgroud)

我试图通过施法修复它

samples = int(np.append(np.zeros(np.floor(frameSize/2.0)), sig))
Run Code Online (Sandbox Code Playgroud)

而且我也试过了

samples = np.append(np.zeros(int(np.floor(frameSize/2.0)), sig))    
Run Code Online (Sandbox Code Playgroud)

然而,这些都没有最终奏效.

我真的想知道如何将我的.wav文件转换为带有颜色的光谱图,以便我可以分析它们!任何帮助,将不胜感激!!!!!

请告诉我你是否希望我提供有关我的python版本,我尝试过的内容或我想要实现的内容的更多信息.

python audio numpy matplotlib spectrogram

14
推荐指数
3
解决办法
4万
查看次数

在 Python3 中使用 Keras 优化 CNN 的架构

我正在尝试将 CNN 的验证准确率从 76%(当前)提高到 90% 以上。我将在下面展示有关我的 CNN 性能和配置的所有信息。

本质上,我希望我的 CNN 区分两类梅尔谱图:

第 1 类 第 1 类 第 2 类 在此处输入图片说明 这是准确率与纪元的关系图:

在此处输入图片说明

这是损失与时代的关系图

在此处输入图片说明

最后,这里是模型架构配置

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',input_shape=(3, 640, 480)))
model.add(Conv2D(64, (3, 3), activation='relu', dim_ordering="th"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
Run Code Online (Sandbox Code Playgroud)

这是我对 model.compile() 和 model.fit() 的调用

model.compile(loss=keras.losses.categorical_crossentropy,
          optimizer=keras.optimizers.SGD(lr=0.001),
          metrics=['accuracy'])
print("Compiled model")

history = model.fit(X_train, Y_train,
      batch_size=8,
      epochs=50,
      verbose=1,
      validation_data=(X_test, Y_test))
Run Code Online (Sandbox Code Playgroud)

如何更改我的 CNN 配置以提高验证准确度分数?

我尝试过的事情:

  1. 降低学习率以防止准确性的零星波动。
  2. 将 batch_size 从 64 减少到 8。
  3. 将时代数增加到 50(但不确定这是否足够)。

任何帮助将不胜感激!

更新 #1 我将时代数增加到 200,在让程序运行一夜之后,我得到了大约 76.31% …

spectrogram python-3.x deep-learning keras tensorflow

5
推荐指数
1
解决办法
1986
查看次数

如何在python3中将24位WAV文件转换为16或32位文件

我正在尝试制作一堆.wav文件的频谱图,以便我可以进一步分析它们(在python 3.6中),但是,我不断收到此讨厌的错误

 ValueError: Unsupported bit depth: the wav file has 24-bit data.
Run Code Online (Sandbox Code Playgroud)

我研究了其他堆栈溢出问题,例如 如何用Python编写24位WAV文件? 但是这些都不能解决问题!

我找到了一个名为Pysoundfile的音频库

http://pysoundfile.readthedocs.io/en/0.9.0/

我安装了

pip3 install pysoundfile
Run Code Online (Sandbox Code Playgroud)

我查看了文档,但仍然不清楚如何将24位.wav文件转换为32位wav文件或16位wav文件,以便可以从中创建频谱图。

任何帮助,将不胜感激!

python audio wav

4
推荐指数
1
解决办法
4938
查看次数

sklearn 维度问题“找到带有暗淡 3 的数组。估计器预期 <= 2”

我正在尝试使用 KNN 将 .wav 文件正确分类为两组,组 0 和组 1。

我提取了数据,创建了模型,拟合了模型,但是当我尝试使用 .predict() 方法时,我收到以下错误:

Traceback (most recent call last):   
File "/..../....../KNN.py", line 20, in <module>
    classifier.fit(X_train, y_train)   
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/neighbors/base.py", line 761, in fit
    X, y = check_X_y(X, y, "csr", multi_output=True)   
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/validation.py", line 521, in check_X_y
    ensure_min_features, warn_on_dtype, estimator)   
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/validation.py", line 405, in check_array
    % (array.ndim, estimator_name)) 
ValueError: Found array with dim 3. Estimator expected <= 2.
Run Code Online (Sandbox Code Playgroud)

我发现这两个 stackoverflow 帖子描述了类似的问题:

sklearn Logistic Regression “ValueError: Found array with dim 3. Estimator expected <= …

python signal-processing numpy machine-learning scikit-learn

4
推荐指数
1
解决办法
1万
查看次数

分类:如果一个类的数据量是另一个类的4倍,会发生什么?

我正在尝试使用分类器调试问题.问题在于它总是为给定的输入预测相同的类,尽管准确度接近80%.

我训练我的CNN来检测两个班级之间的差异.A级有2575个jpegs,B级有665个jpegs.

这可能导致我的CNN问题始终预测同一个类吗?这是每个班级中的项目之间的不平衡吗?一般来说,如果我使两个类的大小相同(665 jpegs?),我的表现会提高吗?

python numpy machine-learning keras tensorflow

3
推荐指数
1
解决办法
312
查看次数

使用Librosa绘制Mel频谱图

我在使用声音的自定义文件路径在librosa中创建梅尔频谱图时遇到问题。

我正在遵循此文档:https : //librosa.github.io/librosa/generated/librosa.feature.melspectrogram.html

我看过这个堆栈溢出文章: 使用Librosa生成的频谱图看起来与Kaldi不一致?

但是,这些都没有帮助我解决问题。

import librosa
y, sr = librosa.load("path_to_my_wav_file")
librosa.feature.melspectrogram(y=y, sr=sr)
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 4))
librosa.display.specshow(librosa.power_to_db(y,                                              
ref=np.max), y_axis='mel', fmax=8000, x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('Mel spectrogram')
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何修复此代码,以使其正确显示并将mel-spectrogram保存为jpg文件吗?谢谢!

python spectrogram librosa

3
推荐指数
1
解决办法
7679
查看次数

如何在python中使用(var1)(var2)表示法将函数应用于值

我正在解决python中的一些问题.在其中一个问题中,它要求我编写一个函数,以便在 examplefunction([1, 2, 3, 4])(10)返回时可以说10.

麻烦的是,我从未见过使用double ()()来表示在python中调用函数的符号.

我已经尝试查看堆栈溢出的多个帖子,例如 Python:将函数应用于嵌套字典中的值

但毫无疑问,这样的问题.

python function

1
推荐指数
1
解决办法
122
查看次数