本发明涉及计算机领域,特别涉及一种歌词处理的方法和装置。
背景技术:
随着经济的发展和人们生活水平的提高,越来越多的人会利用闲暇时间进行放松娱乐。其中,K歌作为一种流行的消遣方式受到人们的普遍欢迎。人们在进行K歌时常常会进行多人对唱,以增强互动性和娱乐性。
相关技术在进行合唱时,合唱标志(例如,男、女)往往是固定在歌词序列中的,不会改变。因而,歌词在显示时只会显示这些固定的合唱标志。然而,在一些情况下当需要增加合唱标志时,例如,由两人合唱变成三或四人合唱时,这种显示固定的合唱标志的方式无法满足需求。
技术实现要素:
为了解决现有技术的问题,本发明实施例提供了一种歌词处理的方法和装置,以灵活显示合唱标志,满足用户需求。所述技术方案如下:
一方面,提供了一种歌词处理方法,所述方法包括:
将每一行歌词添加第一属性值,所述第一属性值指示该行歌词的合唱标志,所述合唱标志表示当前歌词的演唱者;
在读取歌词序列时,根据每一行歌词的第一属性值,显示歌词。
可选地,所述根据每一行歌词的第一属性值,显示歌词包括:
根据每一行歌词的第一属性值,确定该行歌词的第二属性值,所述第二属性值指示该行歌词的合唱标志的显示方式;
根据每一行歌词的第二属性值,确定显示歌词。
可选地,所述根据每一行歌词的第一属性值,确定该行歌词的第二属性值包括:
对于第一行歌词,将第一行歌词的第一属性值选为第一行歌词的第二属性值;
从第二行歌词开始,执行以下操作:
确定当前行歌词的第一属性值与前一行歌词的第一属性值是否相同;
在当前行歌词的第一属性值与前一行歌词的第一属性值不相同时,选择当前行歌词的第一属性值作为当前行歌词的第二属性值;
在当前行歌词的第一属性值与前一行歌词的第一属性值相同时,确定当前行歌词的第二属性值为空。
在一个实施例中,可以对合唱标志进行编辑,即合唱标志可变化。在此情况下,所述方法还包括:
在至少一行的合唱标志发生变化时,对于合唱标志发生变化的每一行,以下列方式重新确定该行的第二属性值和该行的下一行的第二属性值:
确定该行修改后的第一属性值与前一行歌词的第一属性值是否相同;
在不相同时,选择该行歌词的第一属性值作为当前行歌词的第二属性值;
在相同时,确定该行歌词的第二属性值为空。
可选地,所述方法还包括:
当合唱标志发生变化的行的数目超过阈值时,重新从第一行开始依次确定每一行的第二属性值。
另一方,提供一种歌词处理装置,所述装置包括:
处理模块,用于将每一行歌词添加第一属性值,所述第一属性值指示该行歌词的合唱标志,所述合唱标志表示当前歌词的演唱者;
显示模块,用于在处理模块读取歌词序列时,根据每一行歌词的第一属性值,显示歌词。
可选地,所述处理模块具体用于:
根据每一行歌词的第一属性值,确定该行歌词的第二属性值,所述第二属性值指示该行歌词的合唱标志的显示方式;
根据每一行歌词的第二属性值,确定要显示的歌词;
所述显示模块具体用于:显示要显示的歌词。
可选地,所述处理模块具体用于:
对于第一行歌词,将第一行歌词的第一属性值选为第一行歌词的第二属性值;
从第二行歌词开始,执行以下操作:
确定当前行歌词的第一属性值与前一行歌词的第一属性值是否相同;
在当前行歌词的第一属性值与前一行歌词的第一属性值不相同时,选择当前行歌词的第一属性值作为当前行歌词的第二属性值;
在当前行歌词的第一属性值与前一行歌词的第一属性值相同时,确定当前行歌词的第二属性值为空。
可选地,所述处理模块还用于:
在至少一行的合唱标志发生变化时,对于合唱标志发生变化的每一行,以下列方式重新确定该行的第二属性值和该行的下一行的第二属性值:
确定该行修改后的第一属性值与前一行歌词的第一属性值是否相同;
在不相同时,选择该行歌词的第一属性值作为当前行歌词的第二属性值;
在相同时,确定该行歌词的第二属性值为空。
可选地,所述处理模块还用于:
当合唱标志发生变化的行的数目超过阈值时,重新从第一行开始依次确定每一行的第二属性值。
本发明实施例提供的技术方案带来的有益效果是:
通过对每一行歌词添加可改变的第一属性值,所述第一属性值指示该行歌词的合唱标志,这样,当演唱者的人数发生变更时,可以通过改变一些行歌词的第一属性值以反映演唱者的变更,从而可灵活显示每一行歌词的合唱标识,更好地满足用户需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种歌词处理的方法的流程图;
图2是本发明实施例提供的另一种歌词处理的方法的流程图;
图3A是本发明实施例中编辑合唱标志的一种效果图;
图3B是本发明实施例中显示歌词的一种效果图;
图4是本发明实施例中修改图3A所示的合唱标志后的一种效果图;
图5是本发明实施例提供的歌词处理的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种歌词处理方法的流程图。参见图1,本发明实施例提供的一种歌词处理方法可包括:
11、将每一行歌词添加第一属性值,所述第一属性值指示该行歌词的合唱标志,所述合唱标志表示当前歌词的演唱者。
在本发明实施例中,在终端设备上显示歌词时,是以行的形式来显示歌词。在进行K歌时,往往是一个人唱一或多行歌词。本发明实施例中,每一行歌词都具有一个第一属性值,通过每一行歌词的合唱标志来区分演唱者,即,区分该行歌词具体是由谁演唱,以及前后行歌词是否由同一人演唱。
第一属性值可以例如用tag表示,当然也可以用其他合适的单词或字母组合来表示。下面以tag为例进行说明,tag的值可以是枚举类型、整型或字符串,标志区别不同的合唱标志。如果tag值相同,可表示是同一个演唱者。如果tag值不相同,可表示是不同的演唱者。
在本发明实施例中,合唱标志可以进行设置,且可以为各种不同的形式。合唱标志的形式可包括但不限于,用人名作为合唱标志,例如,张三、李四、王五等;用字符表示合唱标志,例如,a、b、c、d等,一个字母可以代表一个演唱者;用各种自定义的汉字表示合唱标志,例如,用代词我、她、合唱表示合唱标志,用男、女、合唱表示合唱标志等等。当然,在本发明实施例中,还可以用其他自定义的字符、字母或汉字来标识合唱标志,本发明对此不做限定,只要自定义的字符、字母或汉字能区分不同的演唱者即可。
其中,合唱标志是可编辑和改变的,这样,当歌曲演唱者的人数发生变化时,例如增多或减少,可以通过改变每一行歌词的合唱标志来体现出演唱者发生变化,和便于后续演唱者演唱歌曲。
12、在读取歌词序列时,根据每一行歌词的第一属性值,显示歌词。
具体地,以a、b、c、d表示四人合唱为例,如果第一行歌词的歌词标志是a,第二行歌词的歌词标志是是c,第三行歌词的歌词标志是d,第四行歌词的歌词标志是b…,则在显示歌词时,分别在第一行歌词的指定位置,例如左侧、右侧、上侧或下侧显示a,在第二行歌词的指定位置显示c,在第三行歌词的指定位置显示d,在第四行歌词的指定位置显示a。这里,指定位置可针对所有行的歌词。亦即,一行歌词的指定位置一经确定,则后续行歌词也可采用相同的方位,以保持美观和便于识别。
本发明实施例提供的歌词处理的方法,通过对每一行歌词添加第一属性值,所述第一属性值指示该行歌词的合唱标志,并可改变每一行歌词的合唱标志,这样,当演唱者的人数发生变更时,可以通过改变一些行歌词的合唱标志以反映演唱者的变更,从而可灵活显示每一行歌词的合唱标识,更好地满足用户需求。
在本发明实施例中,除了可以根据第一属性值显示每一行歌词的合唱标志之外,还可以将第一属性值和第二属性值结合使用来更好地显示歌词,可参照图2。
图2是本发明实施例提供的另一种歌词处理方法的流程图。参见图2,本发明实施例提供的一种歌词处理方法可包括:
21、将每一行歌词添加第一属性值,所述第一属性值指示该行歌词的合唱标志,所述合唱标志表示当前歌词的演唱者。
22、根据每一行歌词的第一属性值,确定该行歌词的第二属性值,所述第二属性值指示该行歌词的合唱标志的显示方式。
其中,合唱标志的显示方式可以包括:是否显示合唱标志(显示或不显示合唱标志),还可包括显示合唱标志的情况下具体如何显示合唱标志,例如合唱标志的显示字体大小、颜色、位置等。
其中,本步骤中所述根据每一行歌词的第一属性值,确定该行歌词的第二属性值可具体为:
对于第一行歌词,将第一行歌词的第一属性值选为第一行歌词的第二属性值;
从第二行歌词开始,执行以下操作:
确定当前行歌词的第一属性值与前一行歌词的第一属性值是否相同;
在当前行歌词的第一属性值与前一行歌词的第一属性值不相同时,选择当前行歌词的第一属性值作为当前行歌词的第二属性值;
在当前行歌词的第一属性值与前一行歌词的第一属性值相同时,确定当前行歌词的第二属性值为空。
23、根据每一行歌词的第二属性值,显示歌词。
具体地,对于那些在步骤22中确定出第二属性值与第一属性值相同的行,则在显示这些行的歌词时可直接显示合唱标志;对于那些在步骤22中确定出第二属性值为空的行,则在显示这些行的歌词时可不显示合唱标志,亦即,只显示出这些行的歌词而没有合唱标志,此时表明这一行歌词的演唱者与上一行歌词的演唱者相同,故而可省略这一行歌词的合唱标志。
本发明实施例提供的歌词处理的方法,通过对每一行歌词添加可改变的第一属性值,所述第一属性值指示该行歌词的合唱标志,同时添加第二属性值。不仅可灵活显示每一行歌词的合唱标识,,而且可通过第二属性值对合唱标志对显示方式进行修改,更好地实现显示方式的多样性,从而更好地满足用户需求。
在图1和图2所示歌词处理的方法实施例中,可能会出现合唱标志发生变化的情况。此时,本发明实施例提供的歌词处理方法还可包括:
在至少一行的合唱标志发生变化时,对于合唱标志发生变化的每一行,以下列方式重新确定该行的第二属性值和该行的下一行的第二属性值:
确定该行修改后的第一属性值与前一行歌词的第一属性值是否相同;
在不相同时,选择该行歌词的第一属性值作为当前行歌词的第二属性值;
在相同时,确定该行歌词的第二属性值为空。
采用与上面所描述的类似的方式来确定该行的下一行的第二属性值。
上述方式可适用于合唱标志发生变化的行的数目不是特别多的情况,因为合唱标志发生变化的行的数目不多时,采用上述方式可节省计算量,从而降低终端的负荷。当然,在合唱标志发生变化的行的数目比较多的情况,也可以采用上述方式,也可以采用下面描述的方式。
在本发明实施例中,还可以预先设置一个阈值,当合唱标志发生变化的行的数目超过阈值时,可以重新从第一行开始依次确定每一行的第二属性值。所述阈值可以根据歌词总共的行数目来设置,例如,阈值可以为总共的行数目的一半,三分之二等,也可以根据需要来设定,一般地,阈值大于3。
下面参照图3A-图4通过具体例子来对本发明实施例提供的歌词处理的方法进行进一步阐释。
图3A显示了刘若英演唱的一首歌曲的歌词。如图3A所示,每一行歌词都具有第一属性值(tag)和第二属性值(showtag)。各行的合唱标志可如下所示:
第一行歌词标示我唱;
第二至第三行标示合唱;
第四至第六行标示她唱;
第七至第八标示合唱;
第九至最后标示她唱。
其中,每行歌词的tag属性记录用户编辑该行歌词的合唱标志,showTag属性值则因tag属性值的变化而变化,该行歌词的showTag属性值变化规则可如下:该行歌词的tag与前一行歌词的tag进行比较,若tag不同则该行歌词的showTag等于该行歌词的tag,若tag相同则该行歌词的showTag等于空。其中,第一行歌词没有前一行歌词,第一行歌词showTag等于第一行歌词tag。
在此情况下的第一属性值(tag)和第二属性值(showtag)可如下表所示:
表1
如图3B所示,K歌时的展示会去除多余的合唱标志,即,合唱标志相同的行,只在这些合唱标志相同的行中的第一行显示合唱标志,后面的行可不显示合唱标志。
具体情况如下:
第一行标示我唱;
第二行标示合唱(第三行不标示);
第四行标示她唱(第五行至六行不标示);
第七行标示合唱(第八行不标志);
第九行标示她唱(第十行至最后不标示)。
在至少一行的合唱标志发生变化时,例如编辑图3A的第四行,由她唱改为合唱。此时各行的第一属性值(tag)和第二属性值(showtag)的变化过程可如下表所示:
表2
表3
当改变一行歌词的合唱标志时,可用两种方式处理修改后的showTag,第一种方法是遍历每一行歌词,根据showTag变化规则遍历每一行歌词,处理每一行歌词的showTag;另一种方法是只需处理修改的当前行歌词和下一行歌词的showTag,同样也根据showTag变化规则处理。
修改图3A所示的合唱标志后的效果图可如图4所示,即第四行标示合唱,第五行标示她唱。
图5是本发明实施例提供的一种歌词处理装置的结构框图。参照图5,本发明实施例提供的歌词处理装置500可包括处理模块501和显示模块502。其中:
处理模块501,用于将每一行歌词添加第一属性值,所述第一属性值指示该行歌词的合唱标志,所述合唱标志表示当前歌词的演唱者;
显示模块502,用于在处理模块读取歌词序列时,根据每一行歌词的第一属性值,显示歌词。
可选地,所述处理模块501可具体用于:
根据每一行歌词的第一属性值,确定该行歌词的第二属性值,所述第二属性值指示该行歌词的合唱标志的显示方式;
根据每一行歌词的第二属性值,确定要显示的合唱标志;
所述显示模块502具体用于:显示要显示的合唱标志。
可选地,所述处理模块501具体用于:
对于第一行歌词,将第一行歌词的第一属性值选为第一行歌词的第二属性值;
从第二行歌词开始,执行以下操作:
确定当前行歌词的第一属性值与前一行歌词的第一属性值是否相同;
在当前行歌词的第一属性值与前一行歌词的第一属性值不相同时,选择当前行歌词的第一属性值作为当前行歌词的第二属性值;
在当前行歌词的第一属性值与前一行歌词的第一属性值相同时,确定当前行歌词的第二属性值为空。
可选地,所述处理模块501还用于:
在至少一行的合唱标志发生变化时,对于合唱标志发生变化的每一行,以下列方式重新确定该行的第二属性值和该行的下一行的第二属性值:
确定该行修改后的第一属性值与前一行歌词的第一属性值是否相同;
在不相同时,选择该行歌词的第一属性值作为当前行歌词的第二属性值;
在相同时,确定该行歌词的第二属性值为空。
可选地,所述处理模块501还可用于:
当合唱标志发生变化的行的数目超过阈值时,重新从第一行开始依次确定每一行的第二属性值。
本发明实施例提供的歌词处理装置,通过对每一行歌词添加可改变的第一属性值,所述第一属性值指示该行歌词的合唱标志,同时添加第二属性值。不仅可灵活显示每一行歌词的合唱标识,,而且可通过第二属性值对合唱标志对显示方式进行修改,更好地实现显示方式的多样性,从而更好地满足用户需求。
需要说明的是:上述实施例提供的歌词处理的装置仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将歌词处理的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的歌词处理的装置和歌词处理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
此外,本发明实施例还可以提供一种终端,所述终端包括至少一个处理器、至少一个存储器、通信接口和总线。处理器、存储器和通信接口通过总线连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
存储器用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器可以为高速RAM存储器,也可能为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器通过读取存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行上面歌词处理的方法实施例中描述的各个步骤。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。