发明名称 一种将五线谱图像转换为声音文件的方法
摘要 本发明公开的一种将五线谱图像转换为声音文件的方法,首先定义音符代码,录制音符的标准声音文件;再采集五线谱图像;然后计算机识别五线谱图像中的小节线、含符干音符、全音符、升降记号、休止符以及谱号,将识别结果转换为音符代码后再存储为声音文件;最后播放声音文件。本发明将五线谱图像转换为声音文件的方法,根据五线谱的知识,对音符的发音规律进行了分类和编码;在图像处理原理的基础上,把人的识别过程转换成对乐谱图像的处理,其识别方法不同于其他图像的识别,识别过程通过C++语言程序设计加以实现。
申请公布号 CN101661745B 申请公布日期 2012.07.18
申请号 CN200910307828.0 申请日期 2009.09.28
申请人 西安理工大学 发明人 张海英;郭人通;郝贵青;阳锋;刘国胜;肖盛杰;张岩;陈常晋;张雷;李玉军
分类号 G10H7/00(2006.01)I;G06K9/00(2006.01)I;G10L13/02(2006.01)I 主分类号 G10H7/00(2006.01)I
代理机构 西安弘理专利事务所 61214 代理人 罗笛
主权项 一种将五线谱图像转换为声音文件的方法,其特征在于,具体按照以下步骤实施:步骤1:定义音符代码,录制音符的标准声音文件给每个音符定义一个代码,代码由四位十进制数组成,第一位为音高,第二位为音名,第三位为音调转换标记,第四位为音长;将每个音符按照规定的音高、音名、音调和音长,录制成标准声音文件,存储在计算机中;步骤2:采集五线谱图像用扫描仪或摄像头获取要识别的五线谱图像,以图片格式文件存储在计算机中;步骤3:计算机识别五线谱图像中的小节线、含符干音符、全音符、升降记号、休止符以及谱号,将识别结果转换为音符代码后再存储为声音文件;具体按照以下步骤实施:步骤1):图像的二值化(1)将彩色图像转换为灰度图像计算机对RGB三色彩通道位图上的值求图像灰度加权和,采用以下公式:Gray = Red * 0.30 + Gre * 0.59 + Blu * 0.11得到图像中各个像素的灰度值;(2)确定阈值对灰度图像进行取样,采用大津法对收集到的数据进行处理,获得二值化的阈值,对待处理图像,记t为前景与背景的分割阈值,前景点数占图像比例为w0,平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1,图像的总平均灰度为:u=w0*u0+w1*u1,从最小灰度值到最大灰度值遍历t,当t使得值g=w0*w1*(u0‑u1)^2最大时t即为分割的最佳阈值;(3)二值化灰度值大于或等于阈值的像素,其灰度值用1表示,表示属于前景;否则,灰度值用0表示,像素点被排除在物体区域以外,表示背景或者例外的物体区域;步骤2):确定各谱线的位置及相邻线之间的平均间距,并擦除谱线(1)确定谱线位置及相邻线之间的平均间距对上步得到的二值图进行横向投影,在投影值列表中找到5个最大的值,取他们的平均值,记为MA,将阈值设为0.5MA,投影值大于这个值则判定该条线可能为谱线,称为候选谱线,在确定图中各候选谱线后,对各相邻线的非零线间宽进行统计,找出占比重最大一组,将其值确定为单位元长度D;(2)谱线的擦除谱线的边界使用B2×n矩阵进行描述,其中n为谱线的长度,B1j为上边界的纵坐标,B2j为下边界的纵坐标,其中0 < j ≤ n,在出现谱线组的位置,分别对五条谱线所处区域做横向扫描,当像素点连续为前景的次数大于某设定阈值时,认为这条线段是构成当前谱线的一部分,将该线段上各点与B2×n矩阵中相应的边界坐标比较,若小于现有上边界或大于现有下边界,则更新边界信息,处理完区域内所有的像素点后,得到完整的横向线边界描述;步骤3):图像的分割若相邻两组谱线的间距大于8D,则在距边沿谱线4D处进行分割;若相邻两组谱线的间距小于8D,则在间隔部分的平分线处进行分割;步骤4):图像的识别(1)小节线及含符干音符的识别a. 纵向线段的识别对分割后的图像做纵向投影,设Sc 为投影筛选阈值,Sv为纵向线判定阈值,Bt 为最大断笔次数,Db为最大断笔距离,判定纵向线时,按以下步骤进行:若当前列的投影值小于Sc,则判定该列上不可能存在纵向线,这一列直接跳过,转向下一列进行处理,若当前列投影值大于Sc,转下一步;从上至下逐点查看权值,找出存在于当前列的所有离散线段;若上下相邻两线段的间隔小于Db,那么认为这个间隔是断笔,可以将这两条线段连为一条,如此构成的长线段中,存在的断笔次数不能超过Bt;在线段拼接后,若当前列中最长线段的长度大于Sv,则判定这条线段是一条纵向线;b.横梁式符尾的识别对于相邻的两个矩形块,取它们对应端点坐标的差值,直除后获得连接两个顶端或两个底端的线段,在一定的范围内纵向平移该线段,若线段所处位置上点的权值都为1,则认为在当前位置上存在一条横梁式符尾;c. 符头的识别对符杆的左下方和右上方依次测试,若出现了一个类似符头大小的前景区域,则认为此位置存在一个实心符头;在一个符头的范围内做纵向求交测试,若交点次数普遍为2,则认为此位置存在一个空符头;d. 独立符尾的识别若符头出现在符杆的左下方,则符尾将出现在符杆的右上方;若符头出现在符杆的右上方,则符尾将出现在符杆的右下方,在符尾可能出现的区域做纵向求交测试,对各列的交点总数进行统计,将出现频率最高的值确定为当前音符的符尾条数;e. 小节线的识别在音符的识别之后,查看剩余矩形块的特征,若矩形块的顶端位于第五线,底端位于第一线,且左右两侧0.5D范围内各列的纵向投影值均近似为0,则认为该矩形块为一个小节线;f. 擦除识别完毕后,分别擦除符干、小节线、符尾和符头;(2)全音符、升降记号、休止符以及谱号的识别a. 确定外接矩形对于图中每一个前景的八向连通区域,确定一个与之对应的外接矩形,每一个外接矩形都有4个属性:X轴方向的起始坐标X1、终止坐标X2和Y轴方向的起始坐标Y1、终止坐标Y2,确定外接矩形的算法如下:将图像进行纵向投影,对投影值Yi,0<i≤图像宽度,进行判断:若Yi>0且Yi‑1  = 0,则i为外接矩形的左边界X1;若Yi>0且Yi+1  = 0,则i为外接矩形的右边界X2;将图像进行横向投影,把X1、X2作为横向投影的两个边界,对投影值Xi,X1≤i≤X2,进行判断:若Xi>0且Xi‑1=0,则i为外接矩形的上边界Y1;若Xi>0且Xi+1=0,则i为外接矩形的下边界Y2;确定了外接矩形后,将这些外接矩形依次与全音符、升降记号、休止符以及谱号的标准外接矩形匹配,进行初步筛选;b. 细节投影值特征匹配对外接矩形所确定的区域进行纵向投影,确定一条特征曲线,设定一导数阈值Sd,若曲线上某点处导数绝对值大于等于Sd,则在此处取断点,由各断点可将曲线分为若干段,取两类数值作为细节匹配的特征值:一是曲线段的所在区间的长度,二是区间内曲线所对应函数的平均函数值,由若干个曲线段获得了一组特征序列;根据上述方法对全音符、升降记号、休止符以及谱号的标准图像进行处理,得到这些音符的标准特征序列,即匹配过程中的参考量;在处理待匹配对象后,获得其特征序列,待匹配对象的特征序列与标准特征序列的匹配方法如下:首先求标准特征序列与待测符号特征序列的最长公共子序列;计算匹配度,即最长公共子序列长度除以标准特征序列长度,若匹配度大于设定的阀值,则认为在纵向上该匹配对象与所对应的标准音符匹配;步骤5):将图像的识别结果转换为音符代码根据上步得到的带符干音符的符头位置和全音符的位置,确定乐谱中音符的音高和音名;根据上步得到的带符干音符的符尾、符头类型及全音符,确定音符的音长;根据上步得到的休止符的类型,确定休止符的音长;根据上步得到的升降号位置,确定音调转换标记;步骤6):将音符代码转换为声音文件将上步识别得到的音符代码,以声音文件的格式存储于计算机中;步骤4:播放声音文件对照步骤1得到的标准声音文件,播放步骤3得到的声音文件,即为要识别的五线谱图像中音符的声音。
地址 710048 陕西省西安市金花南路5号