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 17:03:38 浏览: 44
这个错误提示说明`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:/dlf/demo.py", line 14, in <module> fft_a = np.fft.fft2(image_a)
Traceback (most recent call last): File "C:/dlf/demo.py", line 14, in <module> fft_a = np.fft.fft2(image_a)
这是一个 Python 程序的错误跟踪信息。其中,"Traceback (most recent call last):" 显示了程序在执行过程中发生了错误。"File "C:/dlf/demo.py", line 14, in <module>"指出了错误发生在哪个文件的第14行。根据错误信息"fft_a = np.fft.fft2(image_a)",可以推断出错误可能是由于未导入所需的模块或变量导致的。
上面这段代码出现了Traceback (most recent call last): File "/tmp/a.py", line 4, in <module> date_str = input() EOFError: EOF when reading a line
这个错误提示表示输入的数据不符合要求,程序在读取输入时遇到了EOF(文件结束符),无法继续读取。可能是因为您没有输入任何数据就按了回车键,导致程序读取到了EOF。
为了避免这个错误,可以在输入时加上适当的判断。修改后的代码如下:
```python
from datetime import datetime
# 输入日期
dates = []
while True:
try:
date_str = input()
if not date_str: # 输入为空时结束输入
break
date = datetime.strptime(date_str, "%m/%d/%Y")
dates.append(date)
except ValueError:
print("输入的日期格式不正确,请重新输入")
# 对日期进行排序
sorted_dates = sorted(dates)
# 输出已排序的日期
for date in sorted_dates:
print(date.strftime("%m/%d/%Y"))
```
在代码中,使用try-except语句来捕获ValueError异常(即日期格式不正确的异常),并输出提示信息。这样即使输入的日期格式不正确,程序也不会崩溃,而是提示用户重新输入。