You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确设置帧与步长?(PyAudioAnalysis数组重塑错误问题)

问题:PyAudioAnalysis特征提取时帧与步长设置导致的数组重塑错误

问题场景

研究生毕设中使用PyAudioAnalysis分析音频文件,设置帧(frame)与步长(hop)时触发数组重塑错误,代码及运行输出如下:

运行代码

import numpy as np
from pyAudioAnalysis import audioBasicIO
from pyAudioAnalysis import ShortTermFeatures

[Fs, x] = audioBasicIO.read_audio_file("/content/drive/MyDrive/audio.wav")


print("Sample rate (Fs):", Fs)
print("Total samples (x):", len(x))


frame_size = 0.1 * Fs
hop_size = 0.05 * Fs

print("Frame size:", frame_size)
print("Hop size:", hop_size)


try:
    [F, F_names] = ShortTermFeatures.feature_extraction(x, Fs, frame_size, hop_size)
    print("Feature extraction successful")
except ValueError as e:
    print("Error in feature extraction:", e)

运行输出

Sample rate (Fs): 48000
Total samples (x): 478080
Frame size: 4800.0
Hop size: 2400.0
Error in feature extraction: cannot reshape array of size 9600 into shape (480,10)

解决方案

错误原因

  1. 音频声道问题:报错中的9600 = 4800 * 2,说明目标音频是双声道立体声,而feature_extraction函数默认处理单声道音频,多声道数据会导致内部数组尺寸不匹配。
  2. 参数类型问题:帧长和步长代表采样点数量,必须为整数,当前计算得到的是浮点数(如4800.0),会触发内部重塑逻辑错误。

修正后的代码

import numpy as np
from pyAudioAnalysis import audioBasicIO
from pyAudioAnalysis import ShortTermFeatures

[Fs, x] = audioBasicIO.read_audio_file("/content/drive/MyDrive/audio.wav")

# 将立体声转为单声道(取双声道均值)
if len(x.shape) > 1:
    x = np.mean(x, axis=1)

print("Sample rate (Fs):", Fs)
print("Total samples (x):", len(x))

# 强制转换为整数,确保采样点数量为整数
frame_size = int(0.1 * Fs)
hop_size = int(0.05 * Fs)

print("Frame size:", frame_size)
print("Hop size:", hop_size)

try:
    [F, F_names] = ShortTermFeatures.feature_extraction(x, Fs, frame_size, hop_size)
    print("Feature extraction successful")
    print(f"Extracted features shape: {F.shape}")
except ValueError as e:
    print("Error in feature extraction:", e)

验证说明

修正后代码完成两个关键处理:将双声道音频合并为单声道,同时将帧长、步长转为整数类型,可解决数组重塑错误,顺利完成特征提取。

内容的提问来源于stack exchange,提问作者박일영

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 01:15:25