一种昆曲工尺谱翻译为简谱的智能引擎制造技术

技术编号:34108587 阅读:24 留言:0更新日期:2022-07-12 00:56
本发明专利技术涉及一种昆曲工尺谱翻译为简谱的智能引擎,包含三套结构化编码系统:工尺谱编码,简谱音符编码和简谱可视化编码;以及和两个分步翻译引擎:分别为工尺谱转简谱音符引擎和简谱可视化引擎。利用上述引擎,可将基于结构化昆曲工尺谱数据,智能翻译为简谱编码,具有编码信息精简、覆盖面全、针对性强的特点,有高度的准确性。高度的准确性。高度的准确性。

【技术实现步骤摘要】
一种昆曲工尺谱翻译为简谱的智能引擎


[0001]本专利技术涉及一种音乐谱翻译系统,尤其涉及一种昆曲工尺谱翻译为简谱的智能引擎。

技术介绍

[0002]昆曲是我国传统的戏曲艺术遗传,其音乐形式一般采用中国特有的工尺谱方式进行音乐记谱,该记谱方式由于过于古老,当代许多音乐爱好者无法阅读,同时,由于工尺谱的记谱方式,思路与简谱迥然不同,因此,时至今日也没有比较快捷方便的一一对应的自动翻译方法,只能通过内行从业者进行人工翻译。为填补传统工尺谱无法直接机器自动翻译为简谱的技术空白,本专利技术专利提供一种基于结构化昆曲工尺谱数据,智能翻译为简谱的翻译系统,具有编码信息精简经济、覆盖面全、针对性强(针对昆曲)的特点,经前期实践,已内置于智能软件平台,已成功翻译数百昆曲曲谱,有高度的准确性。

技术实现思路

[0003]本专利技术的目的在于提供一种可用于转换昆曲工尺谱到简谱的一种智能引擎,包括对应的编码系统、翻译引擎模块和算法。
[0004]为实现上述目的,本专利技术采用的技术方案如下。
[0005]首先,本专利技术包含三套结构化编码系统,分别为:工尺谱编码,简谱音符编码和简谱可视化编码。编码采用json格式。工尺谱编码包括曲谱信息和曲谱工尺数据,工尺数据以字为大单位,以工尺为小单位,为包含工尺的逐字的列表形式,逐字的工尺采用工尺列表形式,逐个工尺包含6个编码位,分别为:工尺音高、工尺装饰腔、第一板眼符、第二板眼符、第三板眼符和第四板眼符;简谱音符编码包含曲谱信息和曲谱简谱数据,简谱数据以字为大单位,以简谱音符为小单位,为包含音符的逐字的列表形式,逐字的音符采用音符列表形式,逐个音符包含5个编码位,分别为:简谱音高、装饰腔、上板拍式、起始位、音长;简谱可视化编码包括曲谱信息和可视化简谱数据,以小节为大单位,每小节包括音符数据和唱字数据,音符数据为当前小节内逐音符的列表形式,小节内逐音符包含6个编码位,分别为:上板拍式、起始位、简谱音高、小节内音长、装饰腔、跨小节标记;唱字数据为当前小节内逐唱字的列表形式,每一个字包含具体某唱字及起始位;同时,本引擎包括两个分步翻译引擎,分别为工尺谱转简谱音符引擎和简谱可视化引擎;翻译流程为,工尺谱编码数据进入工尺谱转简谱音符引擎翻译为简谱音符编码,简谱音符编码进入简谱可视化引擎翻译为简谱可视化编码,同时保留存档简谱音符编码和简谱可视化编码;更具体而言,工尺谱转简谱音符引擎包含:预读分析模块、逐字循环处理模块和终处理模块三个模块,而逐字循环处理模块内嵌:逐字前处理模块、逐工尺循环模块和逐字后处理三个子模块;逐工尺循环模块包含音高处理、装饰腔处理、上板拍式分析、起始位计算、音长计算和后处理等关键步骤;简谱可视化引擎包含:预读分析模块、逐字循环处理模块和终处理模块三个模块,而逐字循环处理模块内嵌逐字前处理和逐音符循环两个模块;逐音符循环包含上板拍数记录、起始位记录、音高
记录、音长跨小节处理、装饰腔处理、跨小节记录和小节信息记录等关键步骤。
[0006]进一步地,所述结构化编码系统中,逐个工尺包含6个编码位,编码方式分别为:工尺音高采用从字母a到字母s编码音高的低音工尺上至高音工尺六,工尺装饰腔采用x编码叠/带/撮腔、采用y编码豁腔、采用z编码擞腔,第一到第四板眼位采用数字1

8分别编码正板、正小眼、正中眼、赠板、侧小眼、腰中眼、腰板/底板、赠腰板,此外,无工尺和无板眼均采用0编码;逐个简谱音符包含5个编码位,编码方式分别为:简谱音高采用从字母a到字母s编码音高的低音1至高音5;装饰腔与工尺编码相同,采用x编码叠/带/撮腔、采用y编码豁腔、采用z编码擞腔;上板拍式采用0编码散板、1编码1/4拍、2编码2/4拍和4编码4/4拍,起始位采用16位进制编码,以四分之一拍或十六分音符为最小不可分割单位,以0

9加上a

f编码0

15,共16个位置,分别代表小节头开始多少个四分之一拍或十六分音符;音长采用16位进制编码,以四分之一拍或十六分音符为最小不可分割单位,以0

9加上a

f编码0

15,共16个位置,分别代表音长达到多少个四分之一拍或十六分音符;可视化简谱音符数据中小节内逐音符包含6个编码位,编码方式分别为:上板拍式采用0编码散板、1编码1/4拍、2编码2/4拍和4编码4/4拍;起始位采用16位进制编码,以四分之一拍或十六分音符为最小不可分割单位,以0

9加上a

f编码0

15,共16个位置,分别代表小节头开始多少个四分之一拍或十六分音符,简谱音高采用从字母a到字母s编码音高的低音1至高音5;小节内音长采用16位进制编码,以四分之一拍或十六分音符为最小不可分割单位,以0

9加上a

f编码0

15,共16个位置,分别代表音长达到多少个四分之一拍或十六分音符;装饰腔中叠/带/撮腔实质化为具体的一个新增新符,没有相应编码,豁腔采用具体的豁腔音高编码,即从字母a到字母s编码音高的低音1至高音5,擞腔仍采用z编码;跨小节标记以0标记未垮小节、以1标记跨小节(不管是向后跨小节还是从前一个小节跨过来)。
[0007]进一步,所述工尺谱转简谱音符引擎中,关键特征分析算法如下:第一模块预读分析,包括载入工尺数据和计算非空字数、顶头上板与否分析;第二模块逐字循环模块中,逐字前处理子模块关键步骤包括读取当前字所有工尺、空字借位连接多工尺处理、预读前后三个字的所有工尺数据,逐工尺循环模块包括计算当前位置前后无板眼工尺数、初始化当前音符编码位全部赋值为0,音高处理直接记录为当前工尺谱音高编码、装饰腔处理为直接记录为当前工尺谱装饰腔编码,上板拍式分析为如存在非底板的板眼符则判断为上板、后续跟随的工尺为当前字剩余工尺加上后3字的所有工尺、此前最后两个板眼中存在小眼则判断为4/4拍、下一个非空板眼为小眼则判断为4/4拍、已上板且此前最后两个板眼中不存在小眼但存在正中眼则判断为2/4拍、已上板且此前最后两个板眼中不存在小眼但存在腰中眼则判断为2/4拍、此前最后两个板眼中存在侧小眼则判断为4/4拍、已上板且此前最后两个板眼中不存在小眼也不存在中眼且后面不存在中眼则判断为1/4拍、已上板且当前工尺板眼为正板或腰板/底板而下一个非空板眼为板则判断为1/4拍、已上板当前工尺无板眼而此前的最后一个板眼符号为板并且下一个非空板眼为板则判断为1/4拍、全曲第一个字时根据后跟随的板眼符号判断上板和板式、转板特征识别处理分析4/4拍中途转变为2/4拍情况、尾声处理分析1/4和4/4拍互转及转变为散板和散板重新转变上板条件,起始位计算特征为根据当前第一板眼符号为正板、正小眼、正中眼、侧中眼、散板首次上板由腰板入上板、上板腰板、赠腰板、无板眼等情况构建输出函数分别起始位编码值,音长计算特征为根据当前工尺的非空板眼符号数量分别构建散板、上板无板眼、上板有1个板眼、上板有2个板
眼、上板有3个板眼和上本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种昆曲工尺谱翻译为简谱的智能引擎,其特征在于,三套结构化编码系统和两个分步翻译引擎,三套结构化编码分别为:工尺谱编码,简谱音符编码和简谱可视化编码,两个分步翻译引擎分别为工尺谱转简谱音符引擎和简谱可视化引擎;工尺谱编码包括曲谱信息和曲谱工尺数据,工尺数据以字为大单位,以工尺为小单位,为包含工尺的逐字的列表形式,逐字的工尺采用工尺列表形式,逐个工尺包含6个编码位,分别为:工尺音高、工尺装饰腔、第一板眼符、第二板眼符、第三板眼符和第四板眼符;简谱音符编码包含曲谱信息和曲谱简谱数据,简谱数据以字为大单位,以简谱音符为小单位,为包含音符的逐字的列表形式,逐字的音符采用音符列表形式,逐个音符包含5个编码位,分别为:简谱音高、装饰腔、上板拍式、起始位、音长;简谱可视化编码包括曲谱信息和可视化简谱数据,以小节为大单位,每小节包括音符数据和唱字数据,音符数据为当前小节内逐音符的列表形式,小节内逐音符包含6个编码位,分别为:上板拍式、起始位、简谱音高、小节内音长、装饰腔、跨小节标记;唱字数据为当前小节内逐唱字的列表形式,每一个字包含具体某唱字及起始位;翻译流程为,工尺谱编码数据进入工尺谱转简谱音符引擎翻译为简谱音符编码,简谱音符编码进入简谱可视化引擎翻译为简谱可视化编码,同时保留存档简谱音符编码和简谱可视化编码;更具体而言,工尺谱转简谱音符引擎包含:预读分析模块、逐字循环处理模块和终处理模块三个模块,而逐字循环处理模块内嵌:逐字前处理模块、逐工尺循环模块和逐字后处理三个子模块;逐工尺循环模块包含音高处理、装饰腔处理、上板拍式分析、起始位计算、音长计算和后处理等关键步骤;简谱可视化引擎包含:预读分析模块、逐字循环处理模块和终处理模块三个模块,而逐字循环处理模块内嵌逐字前处理和逐音符循环两个模块;逐音符循环包含上板拍数记录、起始位记录、音高记录、音长跨小节处理、装饰腔处理、跨小节记录和小节信息记录等关键步骤;所述工尺谱转简谱音符引擎中,关键特征分析算法如下:第一模块预读分析,包括载入工尺数据和计算非空字数、顶头上板与否分析;第二模块逐字循环模块中,逐字前处理子模块关键步骤包括读取当前字所有工尺、空字借位连接多工尺处理、预读前后三个字的所有工尺数据,逐工尺循环模块包括计算当前位置前后无板眼工尺数、初始化当前音符编码位,音高处理直接记录为当前工尺谱音高编码、装饰腔处理为直接记录为当前工尺谱装饰腔编码,上板拍式分析为如存在非底板的板眼符则判断为上板、后续跟随的工尺为当前字剩余工尺加上后3字的所有工尺、此前最后两个板眼中存在小眼则判断为4/4拍、下一个非空板眼为小眼则判断为4/4拍、已上板且此前最后两个板眼中不存在小眼但存在正中眼则判断为2/4拍、已上板且此前最后两个板眼中不存在小眼但存在腰中眼则判断为2/4拍、此前最后两个板眼中存在侧小眼则判断为4/4拍、已上板且此前最后两个板眼中不存在小眼也不存在中眼且后面不存在中眼则判断为1/4拍、已上板且当前工尺板眼为正板或腰板/底板而下一个非空板眼为板则判断为1/4拍、已上板当前工尺无板眼而此前的最后一个板眼符号为板并且下一个非空板眼为板则判断为1/4拍、全曲第一个字时根据后跟随的板眼符号判断上板和板式、转板特征识别处理分析4/4拍中途转变为2/4拍情况、尾声处理分析1/4和4/4拍互转及转变为散板和散板重新转变上板条件,起始位计算特征为根据当前第一板眼符号为正板、正小眼、正中眼、侧中眼、散板首次上板由腰板入上板、上板腰板、赠腰板、无板眼等情况构建输出函数分别起始位编码值,音长计算特征为根据当前工尺的非空板眼符号数量分别构建散板、上板无板眼、上板有1个板眼、上板有2个板眼、上板有3个板眼和上板有4个板眼等分类情况分别构建条件判断输出音长编码值,逐个工尺循环
的后处理模块特征包括如果尾声中上板结束打底板进入散板最后一个音长要修正、更新此前已读板眼、更新此前两个非空板眼、更新此前已上板状态;每个字的工尺循环完毕后,逐字后处理模块关键步骤为追加记录当前字的已转换简谱音符编码列表;第三模块终处理模块关键步骤包括:以工尺谱列表的字为单位的数组删除空字、更新简谱结构化编码中曲谱简谱数据;所述简谱可视化引擎中,第一模块预读分析模块包括包括载入结构化曲谱简谱数据和计算非空字数;第二模块逐字循环模块中,逐字前处理子模块关键步骤包括读取当前字所有简谱音符数组、预读取后一个字的所有简谱音符数组,第二模块的逐音符循环子模块中,上板拍式记录、起始位记录、音高记录为直接记录简谱音符编码中的相应原始值,装饰腔处理的关键步骤为豁腔的赋值函数,根据当前音符音高和后一个音符音高音输入预先建立的豁腔转换函数,获得豁腔音高,跨小节处理的关键步骤在于,通过16进制转换函数,将0

f的编码转换成0

15的长度数值,以拍式编码值乘以4为小节总音长,此处拍式为1或2或4,对应为1/4拍、2/4拍或4/4拍,以当前音符的起始位转换数值加上音长转换数值后,如小于小节总音长,则仍在当前小节,起始位和音长不变,如大于等于小节总音长,则小节总音长减去起始位数值,为本小节音长,当前跨小节记录赋值为1,赋值剩余音长为:起始位转换数值加上音长转换数值减去小节总音长后的剩余值,同步进行小节信息记录,进入新的一小节,赋值当前音符的起始位为0,音长为上述剩余音长,音高为适才音符的音高,记录剩余音符后,再继续逐音符循环处理下一音符。2.根据权利要求1所述的智能引擎,其特征在于,所述结构化编码系统中,逐个工尺包含6个编码位,编码方式分别为:工尺音高采用从字母a到字母s编码音高的低音工尺上至高音工尺六,工尺装饰腔采用x编码叠/带/撮腔、采用y编码豁腔、采用z编码擞腔,第一到第四板眼位采用数字1

8分别编码正板、正小眼、正中眼、赠板、侧小眼、腰中眼、腰板/底板、赠腰板,此外,无工尺和无板眼均采用0编码;逐个简谱音符包含5个编码位,编码方式分别为:简谱音高采用从字母a到字母s编码音高的低音1至高音5;装饰腔与工尺编码相同,采用x编码叠/带/撮腔、采用y编码豁腔、采用z编码擞腔;上板拍式采用0编码散板、1编码1/4拍、2编码2/4拍和4编码4/4拍,起始位采用16位进制编码,以四分之一拍或十六分音符为最小不可分割单位,以0

9加上a

f编码0

15,共16个位置,分别代表小节头开始多少个四分之一拍或十六分音符;音长采用16位进制编码,以四分之一拍或十六分音符为最小不可分割单位,以0

9加上a

f编码0

15,共16个位置,分别代表音长达到多少个四分之一拍或十六分音符;可视化简谱音符数据中小节内逐音符包含6个编码位,编码方式分别为:上板拍式采用0编码散板、1编码1/4拍、2编码2/4拍和4编码4/4拍;起始位采用16位进制编码,以四分之一拍或十六分音符为最小不可分割单位,以0

9加上a

f编码0

15,共16个位置,分别代表小节头开始多少个四分之一拍或十六分音符,简谱音高采用从字母a到字母s编码音高的低音1至高音5;小节内音长采用16位进制编码,以四分之一拍或十六分音符为最小不可分割单位,以0

9加上a

f编码0

15,共16个位置,分别代表音长达到多少个四分之一拍或十六分音符;装饰腔中叠/带/撮腔实质化为具体的一个新增新符,没有相应编码,豁腔采用具体的豁腔音高编码,从字母a到字母s编码音高的低音1至高音5,擞腔仍采用z编码;跨小节标记以0标记未垮小节、以1标记跨小节,不管是向后跨小节还是从前一个小节跨过来。3.根据权利要求1所述的智能引擎,其特征在于,所述工尺谱转简谱音符引擎的逐字循环中的逐工尺循环子模块,计算工尺起始位的算法特征为:采用条件判断输出结局,如上板
状态为散板则起始位为0、如当前工尺第一板眼位为正板或赠板则起始位为0、如上板状态为上板且当前工尺第一板眼位为正小眼且前一板眼位是板类时则起始位为4、如上板状态为上板且当前工尺第一板眼位为正小眼且前一板眼位是中眼类或当前工尺第二板眼位为腰板类则起始位为c、如上板状态为上板且当前工尺第一板眼位为正中眼若拍式为4则起始位为8、如上板状态为上板且当前工尺第一板眼位为正中眼若拍式为2则起始位为4、如上板状态为上板且当前工尺第一板眼位为侧小眼且前一板眼位是板类时则起始位为2、如上板状态为上板且当前工尺第一板眼位为侧小眼且前一板眼位是中眼类时则起位为a、如上板状态为上板且当前工尺第一板眼位为侧中眼若拍式为4则起始位为6、如上板状态为上板且当前工尺第一板眼位为侧中眼若拍式为2则起始位为2、如上板状态为上板且当前工尺第一板眼位为腰/底板且此前上板状态变量为散板则判断为散板首次上板起始位在拍式为4时为c而在拍式为2时为6、如上板状态为上板且当前工尺第一板眼位为腰/底板且常规上板进行中位在拍式为4时为e在拍式为2时为6而在拍式为1时为2、如上板状态为上板且当前工尺板眼符为空若前一板眼符为板如后续四个工尺均为空板眼则判断转为散板且起始位为0、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板若前无板眼工尺数为0后有两工尺无板眼则起始位为1、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为0后一工尺编码值>4则起始位为1、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为0且当前工尺为本字的最后一工尺且后一个字的第一工尺板眼符为空则起始位为1、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为0且当前工尺并非本字的最后一工尺且后一工尺有板眼则起始位为2、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为0而后一工尺音无板眼但再后一工尺板眼符不为空则起始位为2、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为0且本字后续无工尺但下一字第一工尺有板眼则起始位为2、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为腰板且前无板眼工尺数为1且后一个板眼为正板或正眼则起始位为3、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为1且后一工尺无板眼则起始位为2、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为1且后一板眼位为腰板或腰眼则起始位为2、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为1且后一板眼为正板眼但本工尺是字的第一音且本字有多个工尺则起始位为2、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为1且后一板眼为正板眼但本工尺是字的第一且本字只有一个音则起始位为3、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为板且前无板眼工尺数为1且后一板眼为正板眼但本工尺不是字的第一音则起始位为3、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼前二非空板眼符为板且前无板眼工尺数为0且后两个工尺均无板眼则起始位为5、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼前二非空板眼符为板且前无板眼工尺数为0且当前工尺为字的第二及以上工尺同时为本字最后一个工尺则起始位为5、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼前二非空板眼符为板且前无板眼工尺数为0且后一板眼编码>4则起始位为5,如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼前二非空板眼符为板且前无板眼工尺数为0的其他情况起始位为6、如上
板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为板且前无板眼工尺数为1且后一工尺板眼符为空则起始位为6、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为板前无板眼工尺数为1且后一工尺板眼为正板或正眼则起始位为7,如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为板前无板眼工尺数为1且后一工尺板眼编码>4则起始位为6、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为板前无板眼工尺数为1的其他情况起始位为7、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺数为0且后两个工尺均无板眼符则起始位为d、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺数为0且后一个工尺无板眼符且再后一个工尺首个板眼位为腰板则起始位为d、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且当前为字的第二工尺且前无板眼工尺数为0且当前音为本字的最后一的音且下一字第一工尺板眼符为空则起始位为d、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且当前工尺为字的唯一工尺则起始位为e、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺数为0且后一个工尺无板眼符且再后一个工尺首个板眼位为正板眼则起始位为e、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺数为0且后一个工尺首个板眼位为正板眼则起始位为e、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺数为0且后一个工尺首个板眼位为腰板则起始位为d、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺数为1且后一个工尺无板眼符的其他情况则起始位为d、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺数为1且后一个工尺首板眼位为正板眼则起始位为f、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺数为1且后一个工尺首个板眼位为腰板眼则起始位为e、如上板状态为上板且当前工尺板眼符为空若前一非空板眼符为眼而前二非空板眼符为中眼且前无板眼工尺...

【专利技术属性】
技术研发人员:杨柳黄金行胡维露
申请(专利权)人:上海墩庐生物医学科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1