⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pv2midifile.html

📁 自动语音识别源码对非特定人的孤立词语音识别算法 进行研究。考虑到语音识别技术在嵌入式系统处理能力较弱、存储空间有限的问 题上进行算法的选择和优化
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head>  <title>Description of pv2midiFile</title>  <meta name="keywords" content="pv2midiFile">  <meta name="description" content="pv2midiFile: Pitch vector to midi file conversion">  <meta http-equiv="Content-Type" content="text/html; charset=big5">  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">  <meta name="robots" content="index, follow">  <link type="text/css" rel="stylesheet" href="../m2html.css"></head><body><a name="_top"></a><div><a href="../index.html">Home</a> &gt;  <a href="index.html">melodyRecognition</a> &gt; pv2midiFile.m</div><!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td><td align="right"><a href="index.html">Index for melodyRecognition&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>pv2midiFile</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>pv2midiFile: Pitch vector to midi file conversion</strong></div><h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>function pv2midiFile(pitchVec, pitchRate, midiFile) </strong></div><h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre class="comment"> pv2midiFile: Pitch vector to midi file conversion
    Usage: pv2midiFile(pitchVec, pitchRate, midiFile)
        pitchVec: pitch vector
        pitchRate: number of pitch points per second (which is equal to fs/(frameSize-overlap))
        midiFile: output midi file</pre></div><!-- crossreference --><h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>This function calls:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="pv2note.html" class="code" title="function note = pv2note(pv, timeUnit, pitchTh, minNoteDuration, plotOpt)">pv2note</a>	pv2note: Note segmentation on a give pitch vector</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"></ul><!-- crossreference --><h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function pv2midiFile(pitchVec, pitchRate, midiFile)</a>0002 <span class="comment">% pv2midiFile: Pitch vector to midi file conversion</span>0003 <span class="comment">%    Usage: pv2midiFile(pitchVec, pitchRate, midiFile)</span>0004 <span class="comment">%        pitchVec: pitch vector</span>0005 <span class="comment">%        pitchRate: number of pitch points per second (which is equal to fs/(frameSize-overlap))</span>0006 <span class="comment">%        midiFile: output midi file</span>0007     0008 noteVec = <a href="pv2note.html" class="code" title="function note = pv2note(pv, timeUnit, pitchTh, minNoteDuration, plotOpt)">pv2note</a>(pitchVec);    <span class="comment">% Note segmentation. The format of noteVec is [pitch, duration, pitch, duration...]</span>0009 <span class="keyword">if</span> noteVec(1)==00010     noteVec = noteVec(3:end);    <span class="comment">% Get rid of leading rest</span>0011 <span class="keyword">end</span>0012 <span class="keyword">if</span> noteVec(end-1) == 00013     noteVec = noteVec(1:end-2);    <span class="comment">% Get rid of trailing rest</span>0014 <span class="keyword">end</span>0015     0016 <span class="keyword">for</span> i=1:2:length(noteVec)0017     k=(i+1)/2;                <span class="comment">% Note index</span>0018     pVector(k)=noteVec(i);            <span class="comment">% pitch</span>0019     durVector(k)=noteVec(i+1)*pitchRate;    <span class="comment">% duration</span>0020     <span class="keyword">if</span> k==10021         onVector(k)=0;            <span class="comment">% onset begin at 0</span>0022     <span class="keyword">else</span>0023         onVector(k)=onVector(k-1)+durVector(k-1);0024     <span class="keyword">end</span>0025 <span class="keyword">end</span>0026 0027 <span class="comment">%pVector=noteVec(1:2:end);</span>0028 <span class="comment">%durVector=noteVec(2:2:end);</span>0029 <span class="comment">%onVector=[0, cumsum(durVector)];</span>0030     0031 beatUnit = 2*mean(durVector);    <span class="comment">% ????????”?????????

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -