把「谁在发声」和「发的什么音」分开:MFCC 是什么
一段人声里同时装着两样东西——声带振多快(决定音高),和嘴摆成什么形状(决定发的是「啊」还是「衣」)。在频谱上它们是相乘的,缠在一起谁也拿不出来。这一课做的事只有一步:取个对数,相乘就变成了相加;相加的两样,再变换一次就能落到一根轴的两端。本文把这条路上的每一步都量出来——包络 98.3% 在左边、激励 99.0% 在右边,切一刀就分开了;最后那步 DCT 把梅尔带之间 0.95 的相邻相关压到 0.15,前 13 个系数装下原谱 98.2% 的变化。
完整代码在第 19 课脚本,运行环境沿用课程总纲里的一次性配置。
一串倒过来的词
这一课有四个新名字。先不用记,扫一眼就往下走——每一个后面都会在它真正被用到的地方重新讲一遍。摆在这里是因为它们有个共同点:都是把原词的前半截倒过来拼的。
spectrum(「频谱」)→ cepstrum(「倒谱」):对数谱再变换一次得到的东西。
frequency(「频率」)→ quefrency(倒频率):倒谱的横轴。
filtering(滤波)→ liftering(提升):在倒谱上做的「滤波」。
harmonic(「谐波」)→ rhamonic(倒谐波):倒谱上的峰。
这不是文字游戏。它在提示一件具体的事:这些量都是在频谱「上面」再做一次变换得到的,所以横轴不再是频率,滤波也不再是滤波。名字倒过来,是为了让你别把两层搞混。
赫兹(Hz)是频率的单位;倒频率的单位不是赫兹,而是秒。这一点后面会立刻派上用场。
这套做法 1960 年代出自地震研究——当时要在地震波里找回声;1970 年代成了语音识别的首选特征;2000 年代进入音乐处理。
互动持续版
静态图文到这里,接下来让声音和图形动起来
购买后解锁完整课程,以及只有官网互动版才能提供的声音、动画和可操作实验。
- 完整声音对比、分步动画与 8 个交互实验
- 微信账号登录,手机和电脑同步访问
- 申请加入课程会员群,交流、反馈和接收更新
- 持续获得这门课程的勘误与内容升级