20共 23 讲9 分钟含交互实验

一行代码替你做了哪四步:用 Python 取 MFCC

上一课把 MFCC 整条链子手写了一遍。这一课把它交给库:`librosa.feature.mfcc` 一行返回 13 行系数,`librosa.feature.delta` 再给出一阶和二阶变化率,拼起来就是常说的每帧 39 维。照例,一行拿到结果之后要做的第一件事是把它拆回上一课手写的那四步,逐位对齐——四个默认值全改对,最大差才降到 0.0000。中间还会撞上两件事:`delta` 不是「后一帧减前一帧」;13 个系数里没有哪一个单独分得开三种风格。

二十三课中的第二十课,把手写的 MFCC 链条和现成的库对齐

完整代码在第 20 课脚本,运行环境沿用课程总纲里的一次性配置。

一行就拿到了 13 个系数

换一段音乐:德彪西那段古典乐的前 30 秒。

signal, sr = librosa.load("debussy.wav")
mfccs = librosa.feature.mfcc(y=signal, sr=sr,
                             n_mfcc=13)
signal  661500 个样本,22050 Hz
mfccs   shape = (13, 1292)

librosa.load 不写采样率就默认重采样到 22050——前面十九课一直用的就是这个数,所以这批特征和之前算过的都能互相比较。

13 行是系数序号 0 到 12,1292 列是帧。 帧数还是第 15 课那条算式:,一帧覆盖 92.9 毫秒,每 23.2 毫秒挪一次。

数值范围是 −395.7 到 216.5。这不是分贝。 分贝停在取对数那一步;再做一次变换之后,出来的系数没有单位。

互动持续版

静态图文到这里,接下来让声音和图形动起来

购买后解锁完整课程,以及只有官网互动版才能提供的声音、动画和可操作实验。

  • 完整声音对比、分步动画与 8 个交互实验
  • 微信账号登录,手机和电脑同步访问
  • 申请加入课程会员群,交流、反馈和接收更新
  • 持续获得这门课程的勘误与内容升级
支付通道配置中比较免费版与互动版