• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 学前教育 > 正文

    马尔可夫蒙特卡洛算法 基于连续隐马尔可夫模型的旋律检索算法研究

    时间:2020-03-28 07:20:20 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘要:本文以CHMM为基础进行音乐哼唱检索算法的研究,实现了模型的建立、模型的训练和旋律识别过程。与已有建模方法不同,本文利用从左到右、没有跳转的CHMM结构建立声学模型,使旋律模型得到简化,明显提高了识别效率。用经过音调转换的音高序列表示旋律特征,利用CHMM的二重随机特性隐含表示音长信息,从而避免了音符切分,使哼唱方式更自然。
      关键词:基于内容的旋律检索 音高提取 隐马尔可夫模型
      1 连续隐马尔可夫模型的结构
      旋律由不同的音符依出现的时间先后组合而成,所谓不同的音符指的是音高不同的音符,或者具有相同音高但音长不同的音符。因此,本文利用从左到右、没有跳转CHMM来描述一段旋律,模型中的每一个状态描述了一个音符。为了适当缩短模型长度,减少计算量,一段旋律中有两个或以上相邻音符具有相同的音高,则将这些音符化分为一个状态。
      这种CHMM的结构是非常简单的,相应的训练算法和识别算法的复杂度都会降低,数据空间的占用也比较小,检索效率比较高。模型结构如图1.1所示:
      1.1 CHMM的状态数
      本文模型的每个状态一般描述一个音符,如果相邻的音符有相同的音高,那么把它们归并到同一个状态中。于是利用旋律所对应的乐谱(简谱或五线谱)就能够很方便的建立这段旋律对应的声学模型,并确定模型的状态数,图1.2便是一个例子。从图1.2中可以看出,该段旋律中音高相同的相邻音符被划分到同一个状态中,总共可以被分为三个状态。
      1.2 CHMM的观测值
      由于音高在频率大小上的可平移性,在许多文献中[1-4],是使用音高差作为观测值的。但由于受噪音或是基频提取算法本身不准确的影响,很难获得一条旋律完全准确的音高序列。因此,本文利用基于FFT-ACF和候选值估计的音高提取方法[5]
      得到一段旋律的音高序列后,进行音调转换,用音调转换后的音高序列来表示旋律的音高特征,作为CHMM的观测值。
      进行音调转换的目的是减小不同使用者的哼唱习惯以及音域的不同带来的差异,所谓哼唱习惯以及音域的不同是指如女声普遍比男声频率要高这样的固有差别。音调转换的具体过程如下:
      ①得到了旋律音高序列后,利用下列式子将音高序列转换为半音(semitone)序列:
       (1.1)
      ②求半音序列的均值E,然后让半音序列逐点减去均值E,得到作为CHMM观测值的音高特征。
      1.3 CHMM的状态转移概率矩阵
      由于本文建立的旋律模型为从左到右、没有跳转的,因此状态转移矩阵PA(i,j)必须满足(1.2)式:
      1.4 CHMM的观测状态概率值
      本文使用经过音调转化的音高序列作为CHMM的观测值,而音高序列只是1维向量,因此CHMM的观测状态概率值可由
      
      
      
       化简为
      
       (1.3)
      
      在本文中,使用1维高斯概率密度函数的对数形式,这样可以把乘法运算改为加法运算,提高计算效率,如(1.4)式所示:
      2 CHMM的参数训练和识别
      在进行模型匹配检索以前,需要获得CHMM的最佳参数值,也就是参数的训练过程。CHMM的参数训练主要是指状态转移矩阵和观测状态概率值的训练。
      2.1 参数初始化
      CHMM的参数初始化一般有两种方法,一是利用乐谱或MIDI音乐进行初始化,二是利用均分法进行初始化。现分别简述如下:
      ①利用MIDI音乐进行初始化:
      对于观测状态概率值,CHMM的每个状态的观测状态概率值由高斯概率密度函数表示,实际上它是由(1.4)式中的均值μj和方差 σj确定的。初始化时,每个状态的均值μj等于对应音符的音高(由MIDI语料获得,且经过音调转换),方差σj设为1。
      对语音信号一般进行分帧处理,当帧的大小固定时,帧数多少可以表达旋律的音长信息。当通过MIDI音乐得到音符的音长后,则根据采样率、帧长可以求得音长对应的帧数,如下式:
      N=t×FS/(FrameSize-Overlap) (1.5)
      其中t为音符的音长,FS为采样率,FrameSize和Overlap分别表示帧长和帧间重叠长度。假设状态i对应的音符含有N帧,由于该状态中只有最后一帧能转移到下一个状态,则有状态转移概率矩阵PA(i,i+1)=1/N,PA(i,i)=1-1/N。
      ②利用均分法初始化:
      均分法过程可简单由图2.1所示,将每条语料的帧数平均划分到每个状态中,分别计算属于每个状态的所有帧的音高特征序列的方差和均值,作为观测状态概率值的均值μj和方差σj。对状态转移概率矩阵,假设每个状态共有M帧,一共有T句语料参与训练,则PA(i,i+1)=T/M,PA(i,i)=1-T/M。
      因为在训练时需要反复迭代语料,直到达到收敛条件为止,使用MIDI音乐进行初始化和利用均分法进行初始对于最后的训练结果差异不大,但两种方法各有优缺点。利用MIDI音乐进行初始化相当于在训练时加入了先验知识,因此在参数训练时收敛比较快;利用均分法初始化则比较简单易行,省略了从MIDI音乐中提取音高和音长的步骤,训练时收敛时间较用MIDI音乐慢。
      2.2 参数训练
      在对CHMM的状态转移矩阵和观测状态概率值进行初始后,利用Viterbi[6]算法进行参数的重估和训练。本文使用的Viterbi算法是基于时间同步的宽度优先算法,或称为时间同步Viterbi-beam [7]算法。Viterbi-beam算法基本公式(1.6)式所示,图2.2为Viterbi-beam算法路径图。
       (1.6)
      其中,i表示状态j的前续状态,Pj(t)表示在时刻t,状态j的最佳路径得分,aij表示从状态i转移到状态j的转移概率,bj(t)表示在时刻 t时,状态为i时,状态观测值为Vt的概率大小。
      对于一组长度为m的音高观测值序列x=[x1,x2,……,xm],以及一个含有n个状态的CHMM来说,训练时首先要建立一个m×n的表格D(如图2.3),表格中的每个位置的值可由(1.7)式计算:
       (1.7)
      其中i,j分别表示帧数和状态数,D(i,j)则表示经过了CHMM的前i个状态,前i个观测值产生的累积概率。(1.7)式是考虑(1.2)式的限制,对(1.6)式简化后求自然对数后的结果。图2.3中黑线部分表示可走路径,相比于图2.2可以看出(1.7)式对传统Viterbi-beam算法进行了简化,减少了搜索路径,提高了计算效率。
      假设,音高序列第一帧必属于第一个状态,则有(1.7)式的初始状态值,如(1.8)式所示:
       (1.8)
      对于音高观测值序列x=[x1,x2,……,xm],因为音高序列最后一帧可属于任意状态,则有x序列对模型的最大累积概率为MaxPro=maxD(m,j),假设音高观测值序列最后一帧属于状态j,借由表格D,从状态j路径回溯,得到音高观测值序列的最佳路径,如图2.3红线所示。最佳路径记录每个音高观测值该属于哪个状态。
      假设最佳路径中属于状态j的帧数为k,连接这些帧,得到子音高观测值序列y=[y1,y2,……,yk],于是可重新估算CHMM的参数:
      训练过程实际是一个反复迭代过程,直到满足收敛条件为止。收敛条件如(1.9)式所示:
      其中n为迭代次数,MaxProi为每次迭代训练获得最大累计概率。需要说明的是上述迭代过程实际是一种期望值最大化方法(Expectation Maximization),因此全部的最大概率在迭代过程中可以被保证是单调递增,直到收敛为止。
      2.3 旋律的识别
      旋律识别的具体方法是:将所有需要检索旋律的CHMM用对应语料进行训练,得到每个CHMM的最佳参数。对于一段用于检索的哼唱旋律,对它进行分帧、提取音高、音调转移后,利用(1.7)式、(1.8)式可求得这段旋律对于每个CHMM的最大累积概率MaxProi,MaxProi序列中的最大值便表示这段旋律与产生最大累积概率的模型最为匹配,即待识别的旋律是模型对应旋律的可能性最大。
      通过实验发现,以上检索算法的效率是比较好的,实验结果如下。
      从表3中可以看出,实验前10 名准确率有92.54%,这是一个比较好的结果。说明了基于CHMM检索算法的有效性,然而系统的前两名准确率是比较低的,分别只有67.22%和76.94%,这个结果是不能让人接受的。综合这两者进行分析,可以看出CHMM模型在查询时弹性太大,虽然能够很好的筛选出所要歌曲,然而在模型相似度比较高的时候却很难区分模型之间的差异。
      参考文献:
      [1]L Rabiner and B Juang. Fundamentals of speech recognition. Pretice Hall,1993.
      [2]张静,朱悦心.采用人声输入的网络音乐检索系统,微电子学与计算,2006,23(5).173-178.
      [3]李名,颜永红.一种基于哼唱的音乐检索方法.第八届全国人机语音通讯学术会议论文集,2005,433-437.
      [4]袁兵,许洁萍.基于HMM模型的音乐哼唱检索系统的研究,第一届HHME,2005.
      [5]徐明,陈知困,黄云森.基于FFT-ACF和候选值估计的音高提取方法.深圳大学学报.2007.
      [6]Viterbi,A. J.Error Bounds for Convolutional Codes and Asymptotically Optimum Decoding Algorithm.IEEE Trans.on Information Theory,1967.13(2):pp.260-269.
      [7]Sites,R.L.editor.Alpha Architecture Reference Manual. Digital Press,1992.

    推荐访问:算法 马尔 模型 基于连续隐马尔可夫模型的旋律检索算法研究 隐马尔可夫模型 马尔可夫模型

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章