专利名称:歌词排序系统及其方法
技术领域:
一种歌词排序系统及其方法,特别是指一种基于判断新增元素的区段进 行歌词排序的系统及其方法。
背景技术:
在计算机科学与数学技术领域中,排序演算法是一种能依照特定顺序进 行排序的一种演算法,上述的特定顺序常见的是数值顺序以及字典顺序。此
然大部分人认为这是排序演算法已经是一被解决的问题,但仍有改进现有排 序演算法的新演算法在不断的被发明。目前的排序演算法中,主要可以分为
两大类 一是使用大量的记忆体空间来增加排序的速度,例如常见的快速排 序法(quicksort)等,另外一种则使用较少的记忆体空间来排序,但相对的 排序速度较慢,这一种排序演算法常见的有气泡排序法(bubble sort)、插 入排序法(insertion sort)等。
目前,处理文字歌词的输出结果的排序演算法大多只是针对已经有索引 值的歌词进行排序,虽然在歌词档中的时间标签可以作为排序的索引值,但 由于时间标签的放置位置是任意的,同一行歌词也可能存在多个时间标签, 因此目前的排序法并不适合用于上述的歌词档的排序。
综上所述,可知先前技术中存在没有适用于LRC歌词档的排序演算法 的问题,因此有必要提出改进的技术手段,来解决此一问题。
发明内容
有鉴于先前技术存在的问题,本发明遂揭露一种歌词排序系统及其方 法,其中本发明所揭露的歌词排序的系统,其包括有储存模块、对应模块、读 取模块、排序模块、键值定义模块、比对模块、歌词排列模块,对应模块将 储存模块中的歌词对应至各时间标签并由读取模块读出,键值定义模块定义 被读出的数个时间标签为起始键值、中间键值以及结尾键值交由比对模块比 对欲排序的时间标签落入哪两个键值之间的区段,再由排序模块将该区段进 行排序,当所有的时间标签都排序完成后,由歌词排列模块排列与排序后的 时间标签相对应的歌词,由此来解决先前技术所存在的问题。
本发明所揭露的歌词排序的方法,其包括有下列步骤将歌词档中的各 行歌词对应至该行所记录的各时间标签;读取与复数个键值的相同数量的时 间标签,其中各键值包含起始键值、至少一中间键值、及结尾键值,且各时 间标签对应于未排序的各歌词中;以特定顺序排列被读取的各时间标签;依 据特定顺序将序列中的各时间标签依序对应至起始键值、各中间键值、及结 尾键值,藉以将序列分为复数个区段;由未排序的各时间标签中读取其中之 一;比对被读取的时间标签与各键值对应的已排序的时间标签,藉以判断被 读取的时间标签所在的区段;比对被读取的时间标签与区段内的所有已排序 的时间标签,藉以将被读取的时间标签排列至该区段的适当位置;于所有时 间标签都排序后,依据时间标签的排列顺序排列与时间标签相对应的各歌 词,其通过先将各歌词对应至各时间标签后,判断读入的时间标签落于何区 间,再排序将读入的时间标签排列在该区间中最适合的位置藉以解决先前技 术所存在的问题。
本发明所揭露的系统与方法如上,其与先前技术之间的差异在于本发明 需先将各歌词对应至各时间标签,并只针对相邻的两个键值所形成的区间进 行排序。通过上述的技术手段,本发明可以达成更有效率的排序歌词档的功 效。
图1是本发明所提的各键值示意图。
图2是本发明所提的歌词排序的系统架构图。
图3是本发明所提的歌词排序的方法流程图。图4A是本发明实施例所提的LRC歌词档。 图4B是本发明实施例所提的排序中的LRC歌词序列示意图。 图4C是本发明实施例所提的排序中的LRC歌词序列示意图。 图4D是本发明实施例所提的排序完成的LRC歌词序列示意图。
具体实施例方式
以下将配合图式及实施例来详细说明本发明的详细特征与实施方式,内 容足以使任何熟习相关技艺者轻易地理解本发明解决技术问题所应用的技 术手段并据以实施,及理解实现本发明可达成的功效。
在介绍本发明具体实施方式
前,先对起始键值、中间键值及结尾键值进 行解释,请参考图1,本发明的起始键值、中间键值及结尾键值的示意图, 起始键值对应串列100的第一个元素,结尾键值对应串列100的最后一个元
素,而对应串列ioo中第一个元素与最后一个元素之外的任何一个元素的键: 值则称为中间键值。
以下以图2本发明所提的歌词排序的系统架构图来说明本发明的系统
运作。如图所示,本发明的系统含有储存模块210、对应模块220、读取模 块230、排序模块240、键值定义模块250、比对模块260及歌词排列模块 270。
储存模块210负责储存歌词档,其中,歌词档包含需要进行排序的歌词。
对应模块220负责将储存模块210中的歌词档的各行歌词对应至该行歌 词所记录的各时间标签。由于一行歌词可能有多个时间标签,所以一行歌词 也可能对应多个时间标签。
读取模块230负责读取数量与本发明所使用的键值(起始键值、中间键 值、结尾键值)相同的时间标签,也就是说,若本发明使用一个起始键值、 一个中间键值以及一个结尾键值,则读取模块230将读出三个时间标签,其 中,歌词档中的各行歌词需先经由对应模块220对应到该行的时间标签后, 经过对应的时间标签才会被读取模块230给读出;读取模块230更负责由未 读取过的时间标签中读取一个未排序的时间标签。排序模块240负责将读取模块230所读出的多个时间标签排列为特定顺 序的序列;以及负责将读取模块230所读出的一个未排序的时间标签依据特 定顺序排列至序列中的适当位置。其中,特定顺序是指对各个时间标签中的 某文字或对某数字进行升幂或降幂排列。
键值定义模块250负责将排序模块240所排列的序列中的元素(时间标 签)定义为起始键值、中间键值、及结尾键值。
比对模块260负责比对读取^莫块230所读出的时间标签与各键值所对应 的时间标签,藉以判断被读取模块230所读出的时间标签所在的区段。
歌词排列模块270负责在所有的时间标签都排序完成后,依据排序完成 的时间标签的顺序排列与时间标签相对应的各歌词。
接着请参照图3本发明所提的歌词排序的方法流程图,并结合图4A至 图4DLRC歌词排序的一个实施例来具体说明本发明的运作系统与方法,但 本发明并不以LRC歌词为限。
LRC歌词档是一种包含r时间标签(time tag)」的纯文字档案。LRC 歌词档通过特别的程序可以用来实现卡拉OK功能,同时又能使用 一般的文 书处理^:件查看或编辑。其中,时间标签为「 [mm:ss]」或「 [mm:ss.fff]」(分 钟数秒数)的形式,且分钟数与秒数须为非负整数,例如r [12:34]」。一 般而言, 行歌词会有一个以上的时间标签,用来表示该行歌词在该时间标 签的时间时,会在歌曲中被唱出,因此根据这些时间标签可以实现卡拉OK 功能。而时间标签可以位于该行歌词中的任意位置。另外,使用LRC歌词 档存放歌词时,各行歌词无须排序即可以被使用。
本实施例以两个中间4定值为例,但本发明并不以两个中间4建值为限。
由于LRC歌词档中的歌词并不一定是已经排序完成的顺序,因此当使 用者使用某一数字装置开启LRC歌词档时,需要先将LRC歌词档中的各行 歌词依据时间标签进行升幂排序,才可以显示给使用者,若使用者所使用的 数字装置使用本发明来排序如图4A所示的LRC歌词档410,首先,对应模 块220会至储存模块210中读取LRC歌词档410,并将LRC歌词档410中 的各行歌词对应到各行所记录的时间标签中(步骤310),也就是说,第一行的「歌词一 」会与时间标签「
」相互对应、第二行的「歌词二 J会 与时间标签r
」相互对应,依此类推,第十行的「歌词十」会与时间 标签r
」相互对应,其中,由于第五行的「歌词五」有两个时间标签, 因此时间标签「
」会对应到「歌词五」,而时间标签「
」也会 对应到r歌词五j ,因此,LRC歌词档中的十行歌词在对应后会产生11笔 时间标签的资料。
在歌词档410中的各行歌词对应到各行所记录的时间标签(步骤310 ) 后,若在本实施例中,本发明预定使用四个键值(两个中间键值, 一个起始 键值以及一个结尾键值)进行排序,则读取模块230会由对应模块220对应 产生的11笔时间标签的资料中读取出前四笔的时间标签(步骤320),也 就是「
J 、 「
J 、 r
J 、 r
」。
之后,如图4B所示,排序模块240会依据读取模块230所读出的四笔 时间标签进行升幂排列(步骤330),藉以建立序列420,在排序模块240 排序完成后,键值定义模块250将依序定义该序列中的元素(各时间标签) 为起始键值、第一中间键值、第二中间键值以及结尾键值(步骤350)。
接着,读取模块230会继续由储存模块210中读取下一笔(第五笔)的 时间标签(步骤360),也就是读取「
歌词五」,并由比对模块260 将第五行歌词的时间标签[Ol :32]与各个键值相比较(步骤370 ),由于时间 标签为
,因此会落在起始键值
与第一中间键值
之间,也 就是落在第一段落。
在比对模块260判断出第五笔的时间标签「
」落在第一段落后, 排序模块240会将第五笔的时间标签与第一段落中的所有时间标签进行排 序(步骤380),因此第五笔的时间标签将会被排列在起始键值所代表的时 间标签与第一中间键值所代表的时间标签之间,使得序列420如图4C所示。
之后,读取模块230会再由储存模块210中读取第六笔的时间标签(步 骤360),由于「歌词五」对应到两个时间标签,因此第六笔的时间标签是 r歌词五」所对应的另一个时间标签「
」,并由比对模块260将第六 笔的时间标签与各个键值相比较(步骤370),由于第六笔的时间标签为
,因此会落入第二中间键值与结尾键值之间。同样的,读取模块230会继续由储存模块210中读取第七笔的时间标签 (步骤360 ),并由比对模块260将第七笔的时间标签与各个键值相比较(步 骤370),由于第七笔的时间标签为「
」,因此会落在起始键值(即 时间标签「
」)与第一中间键值(即时间标签r
」)之间,接 着会由排序模块240将第七笔的时间标签与起始键值与第一中间键值之间 的时间标签进行排序,由于第七笔的时间标签介于起始键值(时间标签 r
」)与第五笔的时间标签r
」之间,因此第七笔的时间标签 将被排序模块240排列在第五笔的时间标签与起始键值之间(步骤380)。
同理,第八笔、第十一笔的时间标签将会被比较模块260判断落在第二 段落,而被排序模块240排列在第一中间键值与第二中间键值之间;第九笔、 第十笔的时间标签将被比较模块260判断落在第三段落,而被排序模块240 排列在第二中间键值与结尾键值之间,如此当所有的时间标签都排序完成 后,歌词排列模块270将如图4D所示,将各行歌词依据相对应的时间标签 的顺序排列成为序列420 (步骤390)。
综上所述,可知本发明与先前技术之间的差异在于具有先将各行歌词对 应到各时间标签后,判断读入的时间标签落于何区间,再排序该区间的时间 标签,藉由此一技术手段可以解决先前技术所存在的没有适合用来排序LRC 歌词档的排序演算法的问题,进而达成有效率的排序歌词档的技术功效。
事实上,本发明还可以自动的调整各个中间4泉值的位置,例如当比较 模块260判断出被读取模块230所读出的时间标签介于起始键值与第 一中间 键值(最接近起始键值的中间键值)之间时,键值定义模块250可以定义读 取模块230所读出的时间标签为新的第 一 中间键值;当比较模块260判断出 被读取模块230所读出的时间标签介于第一中间键值与第二中间键值之间 (第二中间键值较第一中间键值靠近结尾键值)或被读取漠块230所读出的 时间标签介于第二中间键值(最接近结尾键值的中间键值)与结尾键值之间 时,键值定义模块250可以定义读取模块230所读出的时间标签为新的第二 中间键值。
另外,本发明并不限定于只能使用两个中间键值,因此键值定义模块 250更用以定义使用的中间键值的数量,例如当键值定义模块250定义使用三个中间键值时,序列将被分为四个区段,使得比较模块260需要判断时间 标签将介于起始键值与第一中间键值、第一中间键值与第二中间键值之间、 第二中间键值与第三中间键值之间、或第三中间键值与结尾键值之间,再由 排序模块240进行排序。
再者,本发明的歌词排序的方法,可实现于硬件、软件或硬件与软件的 组合中,亦可在电脑系统中以集中方式实现或以不同元件散布于若干互连的 电脑系统的分散方式实现。
虽然本发明所揭露的实施方式如上,惟所述的内容并非用以直接限定本 发明的专利保护范围。任何本发明所属技术领域中具有通常知识者,在不脱 离本发明所揭露的精神和范围之内,在实施的形式上及细节上所为的更动或 润饰,均属本发明的专利保护范围。因此本发明的专利保护范围仍须以本说 明书所附的权利要求范围所界定者为准。
权利要求
1、一种歌词排序的方法,是将一歌词档中的歌词排序为一特定顺序的一序列,该方法包含下列步骤将该歌词档中的各行歌词对应至该行所记录的各时间标签;读取与复数个键值的相同数量的时间标签,其中该些键值包含一起始键值、至少一中间键值、及一结尾键值,且该些被读取的时间标签对应于未排序的该歌词中;以特定顺序排列该些被读取的时间标签;依据该特定顺序将该些时间标签依序对应至该起始键值、各该中间键值、及该结尾键值,藉以将该些时间标签所形成的该序列分为复数个区段;由各该未排序的时间标签中读取其中之一;比对该被读取的时间标签与该些键值对应的该已排序的时间标签,藉以判断该被读取的时间标签所在的区段;比对该被读取的时间标签与该区段内的所有已排序的时间标签,藉以将该被读取的时间标签排列至该区段的适当位置;及于所有该时间标签都排序后,依据时间标签的排列顺序排列与该时间标签相对应的各该歌词。
2、 如权利要求1所述的歌词排序的方法,其中该方法更包含设定各该 中间键值的数量的步骤。
3、 如权利要求1所述的歌词排序的方法,其中该方法更包含当该被读 取的时间标签位于该起始键值与最接近该起始键值的各该中间键值其中之 一之间时,将该最接近该起始键值的中间键值重新对应至该被读取的时间标 签的步骤。
4、 如权利要求1所述的歌词排序的方法,其中该方法更包含当该被读 取的时间标签位于各该中间键值的相邻两者之间时,将该两中间键值中较靠 近该结尾键值的中间键值重新对应至该被读取的时间标签的步骤。
5、 如权利要求1所述的歌词排序的方法,其中该方法更包含当该被读 取的时间标签位于该结尾键值与最接近该结尾键值的各该中间键值其中之一之间时,将该最接近该结尾键:值的中间键值重新对应至该被读取的时间标 签的步骤。
6、 一种歌词排序的系统,是将一歌词档中的歌词排序为一特定顺序的一序列,该系统包含一储存模块,用以储存该歌词档;一对应模块,用以将歌词档中的各行歌词对应至该行所记录的各时间标签;一读取模块,用以读取与复数个键值的相同数量的时间标签,其中该些 键值包含一起始键值、至少一中间键值、及一结尾键值,且该些被读取的时 间标签对应于未排序的该歌词中,及用以由各该未排序的时间标签中读取其 中之一;一排序模块,用以依据该特定顺序将该读取模块所读出的该些时间标签 排序;一键值定义模块,用以将该序列中的该些时间标签依序对应为该起始键 值、各该中间键值、及该结尾键值;一比对模块,用以比对该被读取的时间标签与该些键值所对应的该已排 序的时间标签,藉以判断该被读取的时间标签所在的一区段,使该排序模块一歌词排列模块,用以于所有该时间标签都排序后,依据时间标签的排 列顺序排列与该时间标签相对应的各该歌词。
7、 如权利要求6所述的歌词排序的系统,其中该键值定义模块更用以设定各该中间键值的数量。
8、 如权利要求6所述的歌词排序的系统,其中该键值定义模块更用以 于该被读取的时间标签位于该起始键值与最接近该起始键值的各该中间键 值其中之一之间时,将该最接近该起始键值的中间键值重新对应至该被读取的时间标签。
9、 如权利要求6所述的歌词排序的系统,其中该键值定义模块更用以于该被读取的时间标签位于各该中间键值的相邻两者之间时,将该两中间键 值中较靠进该结尾键值的中间键值重新对应至该被读取的时间标签。
10、 如权利要求6所述的歌词排序的系统,其中该键值定义模块更用以 于该被读取的时间标签位于该结尾键值与最接近该结尾键值的各该中间键 值其中之一之间时,将该最接近该结尾键值的中间键值重新对应至该被读取 的时间标签。
全文摘要
一种歌词排序的系统及其方法,其通过将歌词档中的各行歌词对应至该行中的时间标签后,通过读取各个时间标签藉以判断出欲排列的时间标签的区间,再将该时间标签排列至该区间中,由此解决先前技术中所存在的没有适合用来排序歌词档的排序演算法的问题,藉此可以达成有效率的排序歌词档的功效。
文档编号G06F17/30GK101452460SQ20071019550
公开日2009年6月10日 申请日期2007年11月30日 优先权日2007年11月30日
发明者林 代, 邱全成 申请人:英业达股份有限公司