基于概率的和弦识别方法——隐马尔可夫模型

什么是HMM

假设我手里有三个不同的骰子。第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6。第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4。第三个骰子有八个面(称这个骰子为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。


假设我们开始掷骰子,我们先从三个骰子里挑一个,挑到每一个骰子的概率都是1/3。然后我们掷骰子,得到一个数字,1,2,3,4,5,6,7,8中的一个。不停的重复上述过程,我们会得到一串数字,每个数字都是1,2,3,4,5,6,7,8中的一个。例如我们可能得到这么一串数字(掷骰子10次):1 6 3 5 2 7 3 5 2 4这串数字叫做可见状态链。但是在隐马尔可夫模型中,我们不仅仅有这么一串可见状态链,还有一串隐含状态链。在这个例子里,这串隐含状态链就是你用的骰子的序列。比如,隐含状态链有可能是:D6 D8 D8 D6 D4 D8 D6 D6 D4 D8。

一般来说,HMM中说到的隐马尔可夫链其实是指隐含状态链。隐含状态(骰子)之间存在转换概率(transition probability),可见状态之间没有转换概率,但是隐含状态和可见状态之间有一个概率叫做输出概率(emission probability)。就我们的例子来说,六面骰(D6)产生1的输出概率是1/6。产生2,3,4,5,6的概率也都是1/6。

隐马尔可夫模型状态图

其实对于我们上述的HMM来说,如果提前知道所有隐含状态之间的转换概率和所有隐含状态到所有可见状态之间的输出概率,做模拟是相当容易的。但是应用HMM模型时候呢,往往是缺失了一部分信息的,有时候你知道骰子有几种,每种骰子是什么,但是不知道掷出来的骰子序列;有时候你只是看到了很多次掷骰子的结果,剩下的什么都不知道。如果应用算法去估计这些缺失的信息,就成了一个很重要的问题。这些算法我会在下面详细讲。

和HMM模型相关的算法主要分为三类,分别解决三种问题:
1)知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),我想知道每次掷出来的都是哪种骰子(隐含状态链)。
这个问题呢,在语音识别领域呢,叫做解码问题。这个问题其实有两种解法,会给出两个不同的答案。每个答案都对,只不过这些答案的意义不一样。这里只给出第一种解法。这种解法叫做求最大似然状态路径,说通俗点呢,就是我求一串骰子序列,这串骰子序列产生观测结果的概率最大。

2)还是知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),我想知道掷出这个结果的概率。
看似这个问题意义不大,因为你掷出来的结果很多时候都对应了一个比较大的概率。问这个问题的目的呢,其实是检测观察到的结果和已知的模型是否吻合。如果很多次结果都对应了比较小的概率,那么就说明我们已知的模型很有可能是错的,有人偷偷把我们的骰子給换了。

3)知道骰子有几种(隐含状态数量),不知道每种骰子是什么(转换概率),观测到很多次掷骰子的结果(可见状态链),我想调节每种骰子是什么(转换概率)来让出现这种结果的概率最大。
这个问题很重要,因为这是最常见的情况。很多时候我们只有可见结果,不知道HMM模型里的参数,我们需要从可见结果得到出这些参数,使这个模型是一个最优的模型,这是建模的一个必要步骤。

正式定义

好了直观的理解完成了,我们来给出音隐马尔可夫模型的基本定义
我们将上述直观的理解抽象表达一下:

  • 基本元素
    隐马尔可夫模型可以用5个基本元素来描述,包括两个状态集和三个状态矩阵
    1)隐含状态S
    例如S = [S1, S2, S3]
    2)可观测状态集O
    例如O = [O1, O2, O3, O4, O5]
    (注意:隐含状态集S不一定需要和可观测状态集O的数目一致)
    3)初始状态概率矩阵π
    表示隐含状态S在初始状态时的概率矩阵,例如π = [P(S1), P(S2), P(S3)] = [P1, P2, P3]
    4)隐含状态转移概率矩阵A
    表示各个隐含状态之间的状态转移概率,aij表达t时刻为Si的状态,在t+1时刻变换为Sj的概率。
    隐含状态转移矩阵

    5)观测状态转移概率矩阵B
    观测状态转移矩阵

    令N表示隐含状态数目,M表示可观测状态数目,则

Bij = P(Oi | Sj),1<=i<=N, 1<=j<=M

表示着在t时刻,隐含状态为Sj的情况下,可观察状态为Oi的概率,也就是我们上述的输出概率。

总结:一般来说,我们可以使用一个三元组来表示隐马尔可夫模型

λ = (π, A, B)

一旦确定了这个隐马尔可夫模型,我们就可以使用它来解决各种各样的问题了。根据上述说法,我们知道隐马尔可夫模型可以解决的问题有三类,前两类实际上是一个模式识别问题:解码和评估,后一类是模型学习问题。

相关算法

  • viterbi算法
  • 前向算法
  • EM

如何使用隐马尔可夫模型进行和弦识别

《Chord Segmentation and Recognition using EM-Trained Hidden Markov Models》这篇论文中,使用每个和弦对应一个隐藏状态(隐藏状态数量已知),每一帧的PCP谱图作为可见状态(可见状态链),我们采用EM算法训练模型。在得到HMM之后之后,我们就可以采用viterbi方法求出概率最大的隐藏序列(最大似然路径),并对齐到每个时间帧上。最后,阐述一种基于旋转PCP的加权平均算法来处理原始的PCP,这种方法计算所有音级的加权平均值(通过标注和弦出现的频率进行加权),然后将加权平均PCP向量解旋回到它们的原始位置,并为每个和弦构建新的,正则化的模型的位置。


image.png

之后《A System for Acoustic Chord Transcription and Key Extrac- tion from Audio Using Hidden Markov Models Trained on Synthe- sized Audio》和《Acoustic Chord Transcription and Key Extraction from Audio Using Key-Dependent HMMs Trained on Synthesized Audio》这两篇论文根据和弦的基音区分方法,定义 24 个基音,为每个基音建立一个 HMM,构造 Key-Dependent HMM 模型. 对于输入的音乐信号,系统利用 Viterbi 解码在 24 个模型中选择一个最大可能的基调模型,从而确定输入音乐的基调,并从对应于这个基调模型的最优状态路径来得到和弦序列.


搬运:https://www.zhihu.com/question/20962240/answer/33438846

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容