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" />)—— 单步前进,每按一下,多媒体视音频流往前进指定的时间或帧。46移动的步长可通过按+-改变,这样可以调整移动的时间精度,面板的右上角显示了当前的步长值。
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); //(
合唱唱词显示青色)

以上三个控制代码还必须与歌词段里的标记结合才有效。
karaoke.clear;
范例:

karaoke.setcolor(wcolor); //( 该段标记为女生唱词颜色)
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 := 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');

从上面可以看到,要标明男声、女声或合唱唱词,只要在句子前加上“(:)”“(:)”“(:)”,注意括号和逗号要使用半角的。

 

卡拉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;

其他的设置可自行添加。

小灰熊编辑男女合各字的编码方法:

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');

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。歌词文本是烛光中你的笑容,歌词中每个字的时间值分别是:烛2222318,这个值是一个相对比例。你可以用节拍值表示,也可以用实际时间值表示。

这行歌词中每个字符的实际变色的时间:
这行歌词总的变色时间长度: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中,它所采用的时间单位一种是毫秒,另一种是帧。
当作为参照的多媒体文件中不包含视频时,采用的是毫秒表示,在播放多媒体音频的过程中,根据歌曲节奏敲击歌词,例如.mp3mpa文件等都是这种方法;当包含视频时,采用帧来表示,如.mpg.dat文件等,它们的视频中包含了卡拉OK字幕,我们可以通过慢速播放或手工操作移动视频位置,从而比较精确地做出与原来多媒体视频字幕时间相一致的字幕脚本。