KBuilderTools小灰熊歌词制作<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
——实战KbuilderTools
利用KbuilderTools您可以自己制作卡拉OK字幕描述脚本,这样,您可以利用现成的音乐资源,随心所欲地制作自己的卡拉OK节目。
KbuilderTools的特征:
1. 多语种支持,用户自己可以扩充,使它支持其它语种
2. 制作字幕脚本简单方便
3. 支持效果预览
4. 支持各种多媒体视音频格式
5. 输出字幕视频
6. 所见即所得的编辑功能
一、启动KbuilderTools
启动KbuilderTools,当第一次使用时,它会提示用户选择一种合适的字符集:系统默认支持Ansi英文,GB2312简体中文和BIG5繁体中文三种字符集,用户可以参考程序目录下的Language目录下的三个相应的字符集配置文件增加新的支持新的语种。如果用户在有限的时间内不做选择,则程序自动继续往下运行,然后出现主窗口。
二、界面认知
(一)主窗口功能区:这个是用来制作Ksc歌词脚本的。
(二)工具栏:熟知常用工具按钮的位置和功能才能提高工作效率。
(三)“参数设置”框里各项的具含义
从“文件>选项设置”打开
1字幕属性
颜色设置
“常规”:设置字幕文字的初始颜色,默认是白色;
“常规边框”:设置文字的初始描边颜色,默认是黑色。
“活动”:设置字幕文字的变化颜色,默认是天蓝色,
“活动边框”:设置文字变色后的描边颜色,默认是白色。
“背景”:设置字幕预览时的背景颜色,正式使用时无效,默认是绿色。
“不变颜色”:顾名思义,就是禁止字幕变色。
边框厚度
“常规边框”:设置文字的初始描边的厚度,默认是“<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1”;
“活动边框”:设置文字变色后的描边厚度,默认是“1”。
图像大小
“宽度”、“高度”:设置字幕画面的宽高尺寸,默认为“352×88”
“自动高度”:自动设置字幕画面的高度尺寸。
字幕对齐方式
“第一行”:设置第一行字幕的对齐方式,有“左对齐”、“右对齐”和“居中”三个选择项,默认为“左对齐”。
“第二行”:设置第二行字幕的对齐方式,有“左对齐”、“右对齐”、“居中”和“不显示”四个选择项,如果你只要单行字幕,第二行应设为“不显示”,默认为“右对齐”。
“行间距”:设置两行字幕文字的间距,默认为“4”。
字体:选择字幕使用的字体和字号,如果你找不到字号在哪儿设置,嘿嘿,点一下“示例”下那几个大字看看。
(五)媒体播放器:按F5键打开(从菜单“查看>多媒体播放器”)
(六)效果预览器:按F4键或按工具栏上的(打开从菜单“操作>卡拉OK预览”)
二、制作步骤
(一)新建歌词文件
本软件由于自身的功能限制,以上各项参数设定最好直接在Ksc脚本里添加控制代码。
点“文件”——“选项设置”,选择设置参数,点“新建歌词文件”,出现“脚本添加器代码”如:
karaoke := CreateKaraokeObject;
karaoke.rows := 2;
karaoke.clear;
karaoke.AnimateBorderColor := RGB(255, 0, 0);
karaoke.AnimateColor := RGB(255, 0, 0);
karaoke.NormalBorderColor := RGB(255, 255, 255);
karaoke.NormalColor := RGB(255, 255, 255);
karaoke.TransparentColor := RGB(0, 128, 0);
karaoke.AnimateBorderThickness := 1;
karaoke.NormalBorderThickness := 1;
karaoke.Font('宋体', 20, true);
karaoke.Charset := 0;(应该默认为134,不知道为什么是0,改成134)
karaoke.Width := 352;
karaoke.Height := 88;
karaoke.AutoSize := true;
karaoke.linespace := 4;
karaoke.Rows := 2;
karaoke.FirstAlignment := 0;
karaoke.FirstIndent := 25;
karaoke.NextAlignment := 1;
karaoke.NextIndent := 25;
上面的脚代码是在“选项设置”里,选“常规—白色,常规边框—白色;活动—红色,活动边框—红色;字体—20 宋体”后,新建脚本自动生成的。里面的参数有需要改的地方:karaoke.FirstIndent := 25表示首行缩进,改为5;karaoke.FirstIndent := 25表示第二行缩进,改为5;在歌词取词完成后,在最末尾加上歌名代码karaoke.songname := '歌曲名'。
设置好以上参数后,把准备好的歌词粘贴在脚本上。
注意:在进行歌曲卡拉OK字幕制作工作之前,先用记事本程序将歌词文件编辑好。行与行之间不要留空行;段落间可以加空白行以区分,这样可以增加歌词的可读性;在编辑时注意歌曲每一行的歌词字数最多不要超过12个字,如果多出12字,可将歌词分为两行。
(二)加多媒体文件
(三)进入取词状态
1、选择编辑状态
小灰熊字幕编辑器有三种编辑模式,必须正确选择才能顺利操作 :从“编辑”菜单选择“编辑模式/取时值模式”或点击工具栏选择按钮 即可进行以下切换。
(1)文本编辑模式:可以导入、编辑修改歌词文本。此时文本框的背景为白色(默认)。
(2)逐字同步取时模式 - 使歌词逐字跟随演唱同步变色。此时文本框的背景为灰色(默认)。
(3)逐行同步取时模式 - 使歌词逐句跟随演唱同步变色。此时文本框的背景为深绿色(默认)。
按Ksc脚本的语法要求,所有的标点符号都必须用半角格式的。
2、取词用控制小键盘
在使用快捷键时,请注意要把“Num Lock”灯打灭。
控键如下:
控键如下:
5 -——单字点击。按下此键后,程序将把每个单字的时间记载下来。
4(左箭头) —— 单步后退,每按一下,多媒体视音频流往后退指定的时间或帧。6(右箭头<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />)—— 单步前进,每按一下,多媒体视音频流往前进指定的时间或帧。4和6移动的步长可通过按+和-改变,这样可以调整移动的时间精度,面板的右上角显示了当前的步长值。
7(Home)——设置段开始时间。
1(End) - 设置段结束时间。这个功能在微调时,如果只需要修改每行歌词的开始和结束时间有用;
9(PgUp) - 移动多媒体流到歌词指定的开始时间位置。
3(PgDn) - 移动多媒体流到歌词指定的结束时间位置。按“回车”键正常播放多媒体。
8(上箭头) - 移动到上一行歌词;2(下箭头) - 移动到下一行歌词。
空格 - 播放/暂停多媒体音频。
退格 - 取消上次单字点击(5)。
注:在使用KBuilder Tools制作卡拉OK字幕时,可能会感到歌曲播放速度较快,在制作时常常会手忙脚乱。这时你可以单击工具栏上第一个按钮即“打开多媒体文件”按钮右侧的倒三角形标志,接着从弹出的下拉菜单中选择一种合适的播放速度,然后用此速度播放歌曲来进行制作。
3、检查歌词脚本语法
歌词脚本文件在使用前一定要进行语法检查,将任何错误排除。选择“文件”菜单中的“歌词脚本语法检查”命令,如果歌词脚本中有语法错误,那么状态栏会出现错误提示,并且光标将自动定位在编辑窗口中语法出错的第一行。如果歌词脚本正确,那么就会在状态栏显示“歌词脚本语法正确”字样。
4、修改歌词脚本
当我们在进行歌词脚本语法检查后或在进行卡拉OK预览时发现某些字幕与歌曲同步效果不好时,可以将光标定位到编辑区中相应的歌词位置处,按下“Ctrl+←”或“Ctrl+→”向前或向后移动声音位置,在需要调整的歌词前几秒钟开始播放,然后重新敲键进行制作即可。
5、保存歌词脚本文件
当歌词脚本文件制作完毕后,选择“文件”菜单中的“保存”命令,将歌词脚本用歌名称保存在电脑中。
三常用的控制代码
karaoke := CreateKaraokeObject; //(脚本开头)
karaoke.rows := 1; //(行数:单行1,双行2)
karaoke.LineSpace := 4; //(行距:数字越大行间距越大)
karaoke.Font('黑体', 38, true); //(字体、字号、加粗与否:加粗true,不加粗false)
karaoke.FirstAlignment := 2; //(上行对齐:左对齐0,右对齐1,居中2,)
karaoke.NextAlignment := 2; //(下行对齐:左对齐0,右对齐1,居中2,)
karaoke.AutoFontSize := false; //(自动调整字号:是true,否false)
karaoke.AutoSize := true; //(自动调整字幕大小:是true,否false)
karaoke.TitleOnly := true; //(禁止变色:是true,否false)
karaoke.NormalColor := RGB(255, 255, 255); //(初始字幕颜色:白)
karaoke.AnimateColor := RGB(0, 0, 255); //(变化字幕颜色:蓝)
karaoke.NormalBorderColor := RGB(0, 0, 255); //(初始描边颜色:蓝)
karaoke.AnimateBorderColor := RGB(255, 255, 255); //(变化描边颜色:白)
karaoke.NormalBorderThickness := 2; //(初始描边厚度)
karaoke.AnimateBorderThickness := 2; //(变化描边厚度)
karaoke.SetColor('女', RGB(255,0,0)); //(分色显示:这里指定女声唱词以红色显示)
karaoke.FadeIn := false; //(淡入:是true,否false)
karaoke.FadeOut := false; //(淡出:是true,否false)
karaoke.AudioFileName := '*.wav'; //(关联音频文件 :这里用“*”代表该文件与歌词脚本相同名称)
karaoke.TimeOffset := -3000; //(改变时间:提前-,滞后+ 注:整首调整的话应放在全部歌词之后)
karaoke.ShadowEnabled := true; //(使用阴影:是true,否false)
karaoke.clear; //(脚本结尾)
小灰熊歌名代码:karaoke.songname := '歌名'; //(取词完成后加在最后面)
4(左箭头) —— 单步后退,每按一下,多媒体视音频流往后退指定的时间或帧。6(右箭头<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />)—— 单步前进,每按一下,多媒体视音频流往前进指定的时间或帧。4和6移动的步长可通过按+和-改变,这样可以调整移动的时间精度,面板的右上角显示了当前的步长值。
7(Home)——设置段开始时间。
1(End) - 设置段结束时间。这个功能在微调时,如果只需要修改每行歌词的开始和结束时间有用;
9(PgUp) - 移动多媒体流到歌词指定的开始时间位置。
3(PgDn) - 移动多媒体流到歌词指定的结束时间位置。按“回车”键正常播放多媒体。
8(上箭头) - 移动到上一行歌词;2(下箭头) - 移动到下一行歌词。
空格 - 播放/暂停多媒体音频。
退格 - 取消上次单字点击(5)。
注:在使用KBuilder Tools制作卡拉OK字幕时,可能会感到歌曲播放速度较快,在制作时常常会手忙脚乱。这时你可以单击工具栏上第一个按钮即“打开多媒体文件”按钮右侧的倒三角形标志,接着从弹出的下拉菜单中选择一种合适的播放速度,然后用此速度播放歌曲来进行制作。
3、检查歌词脚本语法
歌词脚本文件在使用前一定要进行语法检查,将任何错误排除。选择“文件”菜单中的“歌词脚本语法检查”命令,如果歌词脚本中有语法错误,那么状态栏会出现错误提示,并且光标将自动定位在编辑窗口中语法出错的第一行。如果歌词脚本正确,那么就会在状态栏显示“歌词脚本语法正确”字样。
4、修改歌词脚本
当我们在进行歌词脚本语法检查后或在进行卡拉OK预览时发现某些字幕与歌曲同步效果不好时,可以将光标定位到编辑区中相应的歌词位置处,按下“Ctrl+←”或“Ctrl+→”向前或向后移动声音位置,在需要调整的歌词前几秒钟开始播放,然后重新敲键进行制作即可。
5、保存歌词脚本文件
当歌词脚本文件制作完毕后,选择“文件”菜单中的“保存”命令,将歌词脚本用歌名称保存在电脑中。
三常用的控制代码
karaoke := CreateKaraokeObject; //(脚本开头)
karaoke.rows := 1; //(行数:单行1,双行2)
karaoke.LineSpace := 4; //(行距:数字越大行间距越大)
karaoke.Font('黑体', 38, true); //(字体、字号、加粗与否:加粗true,不加粗false)
karaoke.FirstAlignment := 2; //(上行对齐:左对齐0,右对齐1,居中2,)
karaoke.NextAlignment := 2; //(下行对齐:左对齐0,右对齐1,居中2,)
karaoke.AutoFontSize := false; //(自动调整字号:是true,否false)
karaoke.AutoSize := true; //(自动调整字幕大小:是true,否false)
karaoke.TitleOnly := true; //(禁止变色:是true,否false)
karaoke.NormalColor := RGB(255, 255, 255); //(初始字幕颜色:白)
karaoke.AnimateColor := RGB(0, 0, 255); //(变化字幕颜色:蓝)
karaoke.NormalBorderColor := RGB(0, 0, 255); //(初始描边颜色:蓝)
karaoke.AnimateBorderColor := RGB(255, 255, 255); //(变化描边颜色:白)
karaoke.NormalBorderThickness := 2; //(初始描边厚度)
karaoke.AnimateBorderThickness := 2; //(变化描边厚度)
karaoke.SetColor('女', RGB(255,0,0)); //(分色显示:这里指定女声唱词以红色显示)
karaoke.FadeIn := false; //(淡入:是true,否false)
karaoke.FadeOut := false; //(淡出:是true,否false)
karaoke.AudioFileName := '*.wav'; //(关联音频文件 :这里用“*”代表该文件与歌词脚本相同名称)
karaoke.TimeOffset := -3000; //(改变时间:提前-,滞后+ 注:整首调整的话应放在全部歌词之后)
karaoke.ShadowEnabled := true; //(使用阴影:是true,否false)
karaoke.clear; //(脚本结尾)
小灰熊歌名代码:karaoke.songname := '歌名'; //(取词完成后加在最后面)
注:RGB即红绿蓝三个基色,其设定方式为:红色=255,0,0;绿色=0,255,0;蓝色=0,0,255;金×××=255,200,0;白色=255,255,255;黑色=0,0,0 …… 灵活设定三个基色的数值就可以获得其他各种颜色。
应该说,以上功能可在过小灰熊“文件—选项设置”中设定,但实际应用时常常出错,因此,最好直接在脚本上设置,这样可以省去许多麻烦。
四、标明男、女声和合唱唱词,并按不同颜色显示有两种方法
第一法:这是早期用法,比较复杂,除了开头的控制代码外,还要在歌词句子或段落上作标记,颜色设置也不灵便。
karaoke := CreateKaraokeObject;
wcolor := RGB(255, 0, 0); //(女声唱词显示红色)
mcolor := RGB(0, 0, 255); //(男声唱词显示蓝色)
tcolor := RGB(0, 200, 255); //(合唱唱词显示青色)
wcolor := RGB(255, 0, 0); //(女声唱词显示红色)
mcolor := RGB(0, 0, 255); //(男声唱词显示蓝色)
tcolor := RGB(0, 200, 255); //(合唱唱词显示青色)
以上三个控制代码还必须与歌词段里的标记结合才有效。
karaoke.clear;
范例:
karaoke.clear;
范例:
karaoke.setcolor(wcolor); //(该段标记为女生唱词颜色)
karaoke.add('00:35.759', '00:39.519', '(女:)让我的爱伴着你', '10000,16000,8000,24000,16000,8000,12000');
karaoke.add('00:35.759', '00:39.519', '(女:)让我的爱伴着你', '10000,16000,8000,24000,16000,8000,12000');
karaoke.setcolor(mcolor); //(该段标记为男生唱词颜色)
karaoke.add('01:09.598', '01:13.198', '(男:)把你的情记在心里', '7000,14000,6000,24000,16000,4000,10000,9000');
karaoke.add('01:09.598', '01:13.198', '(男:)把你的情记在心里', '7000,14000,6000,24000,16000,4000,10000,9000');
第二法:比较简单,只要在开头设好控制代码即可,颜色设置非常灵便。
开头控制代码:
karaoke := CreateKaraokeObject;
karaoke.SetColor('女', RGB(255, 0, 0)); //(女声唱词显示红色)
karaoke.SetColor('男', RGB(0, 0, 255)); //(男声唱词显示蓝色)
karaoke.SetColor('合', RGB(255, 200, 0)); //(合唱唱词显示金×××)
karaoke.clear;
在歌词前面直接加提示字,用括号括起来,其它地方不变。格式是:
karaoke.Add('开始时间', '结束时间', '(提示字)歌词', '时值');
范例:
karaoke.add('00:35.759', '00:39.519', '(女:)让我的爱伴着你', '10000,16000,8000,24000,16000,8000,12000');
karaoke.add('01:09.598', '01:13.198', '(男:)把你的情记在心里', '7000,14000,6000,24000,16000,4000,10000,9000');
karaoke.add('01:50.917', '01:53.157', '(合:)我们彼此都保护好', '5000,6000,9000,6000,6000,9000,8000,7000');
karaoke.add('01:50.917', '01:53.157', '(合:)我们彼此都保护好', '5000,6000,9000,6000,6000,9000,8000,7000');
从上面可以看到,要标明男声、女声或合唱唱词,只要在句子前加上“(男:)”、“(女:)”、“(合:)”,注意括号和逗号要使用半角的。
卡拉OK脚本的歌词行描述格式是:karaoke.Add('开始时间', '结束时间', '歌词', '时值'[, '提示字' ]);
在这个定义中“提示字”是可有可无的,所以如果需要提示字时,就可以在歌词脚本中手工加上即可。不光是一个字的提示,其它的提示都是可以的,比如象“童声合唱:”这样的提示字也是可以的。
例:
karaoke.add('00:29.696', '00:32.537', '从来没有人如此', '1', '女:');
---------------------------------------------------------------
歌词句子中有空格的表示方法:使用方括号中间加空格,如“阳光[ ]沙滩[ ]海浪[ ]仙人掌”。
纪录片配对白字幕控制代码:应该禁止变色、单行居中并逐句显示,基本的控制代码如下:
karaoke := CreateKaraokeObject;
karaoke.TitleOnly := true; //(禁止变色)
karaoke.rows := 1; //(单行显示)
karaoke.FirstAlignment := 2; //(居中对齐)
karaoke.clear;
karaoke.TitleOnly := true; //(禁止变色)
karaoke.rows := 1; //(单行显示)
karaoke.FirstAlignment := 2; //(居中对齐)
karaoke.clear;
其他的设置可自行添加。
小灰熊编辑男女合各字的编码方法:
男CTRL+B
女CTRL+G
合CTRL+T
五、英文歌曲曲制作
最麻烦的要算英文歌曲的脚本制作了,它跟中文歌曲有些不同,一般是按单词或音节来确定每一敲键单位,如果以字母为单位来制作的话
,显然制作起来就太麻烦 。从KBuilder 3.1开始,在制作英文歌曲时,可以把一行的歌词按单词或音节划分成几个敲键部分,这样简化了制作
工作量,而且也比较合理。
范例:
这是“sealed with a kiss”中的片段:
karaoke.add('00:42.334', '00:44.069', '[But ][I''ll ][fill ][the]', '14,18,8,12');
karaoke.add('00:50.207', '00:55.078', '[everyday ][in a ][le][tter]', '42,26,12,58');
karaoke.add('01:02.350', '01:05.619', '[sun][light ][I''ll ][hear]', '15,45,18,20');
karaoke.add('01:05.723', '01:09.523', '[your ][voice ][every][where]', '21,21,18,54');
karaoke.add('00:50.207', '00:55.078', '[everyday ][in a ][le][tter]', '42,26,12,58');
karaoke.add('01:02.350', '01:05.619', '[sun][light ][I''ll ][hear]', '15,45,18,20');
karaoke.add('01:05.723', '01:09.523', '[your ][voice ][every][where]', '21,21,18,54');
第4行的“[le][tter]”和第3行的“[sun][light ]”以及第4行的“[every][where]”都是把一个单词按音节划分成若干部分的。
另外需要注意的是英文歌词中的 '要用两个''表示,以免与表示字符串的'混淆,如“I'll” 要写成“I''ll” 。
在实际应用中,还经常碰到这样的问题:脚本与歌曲不同步。这个原因很多,可能是用来匹配的歌曲版本不同,也可能是同步取时操作失误引起的。前者可以找到相应版本的媒体文件重新匹配,或者干脆自己动手录入歌词、同步取时制作一个合适的脚本;后者可以点击这里阅读相关处理方法的说明。
小灰熊色彩代码
r := RGB(255, 0, 0);
g := RGB(0, 255, 0);
b := RGB(0, 0, 255);
f := RGB(255, 0, 255);
f(粉色)r(红色)g(绿色)b(篮色)
红色=255,0,0;绿色=0,255,0;蓝色=0,0,255;金×××=255,200,0;白色=255,255,255;黑色=0,0,0
六、KBTools的工作原理
在KBuilder中,歌词脚本需要描述以下几方面的属性(对于每一行歌词而言):
开始时间, 结束时间, 歌词文本, 单字时值[, 提示字[, 颜色]],方括号中的内容是可选的,也就是说它是可有可无的。
范例
karaoke.add('00:20.418', '00:23.554', '烛光中你的笑容', '2,2,2,2,3,1,8', '女:');
表示这一行有一个提示字“女:”,开始变色的时间是00:20.418,变色完成是00:23.554。歌词文本是“烛光中你的笑容”,歌词中每个字的时间值分别是:烛2光2中2你2的3笑1容8,这个值是一个相对比例。你可以用节拍值表示,也可以用实际时间值表示。
在KBuilder中,歌词脚本需要描述以下几方面的属性(对于每一行歌词而言):
开始时间, 结束时间, 歌词文本, 单字时值[, 提示字[, 颜色]],方括号中的内容是可选的,也就是说它是可有可无的。
范例
karaoke.add('00:20.418', '00:23.554', '烛光中你的笑容', '2,2,2,2,3,1,8', '女:');
表示这一行有一个提示字“女:”,开始变色的时间是00:20.418,变色完成是00:23.554。歌词文本是“烛光中你的笑容”,歌词中每个字的时间值分别是:烛2光2中2你2的3笑1容8,这个值是一个相对比例。你可以用节拍值表示,也可以用实际时间值表示。
这行歌词中每个字符的实际变色的时间:
这行歌词总的变色时间长度:00:23.554 - 00:20.418 = 00:03.136 秒
“烛”:03.136 * 2 / (2+2+2+2+3+1+8) = 00.3136 秒
“的”:03.136 * 3 / (2+2+2+2+3+1+8) = 00.4704 秒
“笑”:03.136 * 1 / (2+2+2+2+3+1+8) = 00.1568 秒
“容”:03.136 * 8 / (2+2+2+2+3+1+8) = 01.2544 秒
从上面的计算方法来看,歌词中每个字的时间值是可以用任何单位表示的,因为它们是一些相对的值。
这行歌词总的变色时间长度:00:23.554 - 00:20.418 = 00:03.136 秒
“烛”:03.136 * 2 / (2+2+2+2+3+1+8) = 00.3136 秒
“的”:03.136 * 3 / (2+2+2+2+3+1+8) = 00.4704 秒
“笑”:03.136 * 1 / (2+2+2+2+3+1+8) = 00.1568 秒
“容”:03.136 * 8 / (2+2+2+2+3+1+8) = 01.2544 秒
从上面的计算方法来看,歌词中每个字的时间值是可以用任何单位表示的,因为它们是一些相对的值。
在KBTools中,它所采用的时间单位一种是毫秒,另一种是帧。
当作为参照的多媒体文件中不包含视频时,采用的是毫秒表示,在播放多媒体音频的过程中,根据歌曲节奏敲击歌词,例如.mp3,mpa文件等都是这种方法;当包含视频时,采用帧来表示,如.mpg,.dat文件等,它们的视频中包含了卡拉OK字幕,我们可以通过慢速播放或手工操作移动视频位置,从而比较精确地做出与原来多媒体视频字幕时间相一致的字幕脚本。
当作为参照的多媒体文件中不包含视频时,采用的是毫秒表示,在播放多媒体音频的过程中,根据歌曲节奏敲击歌词,例如.mp3,mpa文件等都是这种方法;当包含视频时,采用帧来表示,如.mpg,.dat文件等,它们的视频中包含了卡拉OK字幕,我们可以通过慢速播放或手工操作移动视频位置,从而比较精确地做出与原来多媒体视频字幕时间相一致的字幕脚本。
转载于:https://blog.51cto.com/100114/44889