Traceback (most recent call last): File "D:\eda\789.py", line 10, in <module> mel_spec = librosa.feature.melspectrogram(signal, sr=sr, n_mels=128) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: melspectrogram() takes 0 positional arguments but 1 positional argument (and 1 keyword-only argument) were given
时间: 2023-08-03 22:03:38 浏览: 116
这个错误提示说明`melspectrogram()`方法需要一个音频信号作为输入参数,但是你没有提供。你需要将音频信号作为参数传递给`melspectrogram()`方法。以下是一个示例代码,用于读取音频文件并计算梅尔倒频谱:
```python
import librosa
# 读取音频文件
audio_file = "sample.wav"
signal, sr = librosa.load(audio_file)
# 计算梅尔倒频谱
mel_spec = librosa.feature.melspectrogram(signal, sr=sr, n_mels=128)
# 将梅尔倒频谱转换为对数刻度
log_mel_spec = librosa.power_to_db(mel_spec, ref=np.max)
# 将对数刻度的梅尔倒频谱转换为特征向量
mfcc = librosa.feature.mfcc(S=log_mel_spec, n_mfcc=13)
# 打印特征向量的形状
print(mfcc.shape)
```
这段代码使用`librosa.load()`方法读取音频文件,返回音频信号和采样率。然后使用`librosa.feature.melspectrogram()`方法计算梅尔倒频谱,传递音频信号和采样率作为输入参数。最后将梅尔倒频谱转换为对数刻度和MFCC特征向量。
相关问题
Traceback (most recent call last): File "c_bond.py", line 19, in <module> m5_new = create_supercell_bond_pattern(m5) File "c_bond.py", line 15, in create_supercell_bond_pattern analysis.BondValenceModel.rebond(mol333, ignore_pbc=True) AttributeError: type object 'builtins.BondValenceModel' has no attribute 'rebond'
这个错误提示是因为在你的代码中使用了 `BondValenceModel.rebond` 方法,但是 Python 中的内置对象 `builtins.BondValenceModel` 并没有这个方法。
你需要检查一下你的代码,看看是否有导入正确的模块和类,以及是否正确地使用了 `BondValenceModel.rebond` 方法。你可以查阅相关的文档或者示例代码来解决这个问题。另外,你也可以考虑使用其他的方法来实现你的需求。
Traceback (most recent call last): File "D:\Python\zj.py", line 10, in <module> sorted_lines = sorted(lines, key=lambda x: int(x.split()[1]), reverse=True) File "D:\Python\zj.py", line 10, in <lambda> sorted_lines = sorted(lines, key=lambda x: int(x.split()[1]), reverse=True) IndexError: list index out of range
这个错误通常出现在尝试访问一个不存在的列表元素时。在这个例子中,可能是某一行记录中没有空格分隔符,导致使用`split()`函数无法正确提取成绩。
可以先打印出每行记录来检查是否存在这样的情况:
```python
with open('marks.txt', 'r') as f:
lines = f.readlines()
for line in lines:
print(line)
```
如果存在某一行记录中没有空格分隔符,则需要手动处理这种情况。例如,可以在`lambda`表达式中加入一个判断,如果无法成功提取成绩,则将成绩设置为0:
```python
sorted_lines = sorted(lines, key=lambda x: int(x.split()[1]) if len(x.split())>=2 else 0, reverse=True)
```
这样可以避免IndexError错误。
阅读全文