卡拉OK字幕生成套件
KBuilder 3 Suite

# 一、KBuilder3简介

> ## 1.1 什么是KBuilder

> KBuilder 是一套用于生成卡拉 OK 字幕视频素材的工具。利用该工具套件生成卡拉 OK 字幕素材后，通过视频编辑软件将其它视音频素材一起加工处理，最终可以制作出令人激动的卡拉 OK 节目，保存在 CDR 盘片上，通过计算机或 VCD，SVCD 和 DVD 机器播放它们。KBuilder3 套件包括以下部分：

> > 1. KBuilder - 歌词脚本试播和生成字幕视频素材，支持 KBScripts 1.0；
> > 2. KBTools - 用于生成歌词脚本(.ksc)的工具；
> > 3. Samples - 流行歌曲歌词脚本范例，经典字幕素材；
> > 4. KBuilder plugin for Premiere；
> > 5. Help - 帮助文档，包括歌词脚本制作，生成字幕视频素材以及在常用视频编辑软件中的具体应用的说明。

> 利用 KBuilder3 制作卡拉 OK 节目的一般步骤如下：

> > 1. 用 KBTools 制作歌词脚本，歌词脚本中定义了歌词什么时候显示，什么时候开始变色，每一个字变色的时间长度，字幕颜色和效果等；
> > 2. 用 KBuilder 生成字幕视频素材.avi 或图象序列.tga 文件；
> > 3. 用视频编辑软件把字幕素材和其它视音频素材一起生成视频.avi(也可以一次性生成.mpg)；
> > 4. 用视频压缩软件把.avi 压缩成.mpg 文件；
> > 5. 用刻录机把.mpg 文件刻录到 CDR 上。

> ## 1.2 KBuilder3的新功能

> > 1. 支持 KBScripts 脚本，用脚本可以对 KBuilder 进行全方位的控制和操作：描述卡拉 OK 歌词，设置卡拉 OK 字幕的属性以及生成器的各种操作；
> > 2. 支持同屏上下两行歌词，也支持单行歌词；
> > 3. 每行歌词可以单独设置对齐属性。如上一行左对齐，下一行右对齐，单行歌词时居中对齐等；
> > 4. 用于非卡拉 OK 场合的不变色字幕；
> > 5. 预置的多种视频格式设置(profiles)，输出 VCD，SVCD，DVD(PAL，NTSC)格式的视频一次选单即可实现；
> > 6. 时间偏移功能。有时做好的歌词脚本在使用时因为音频素材的更换发现需要往前或往后挪动，但又不想再用歌词工具重新制作，用该功能即可轻松实现；
> > 7. 为提高字幕素材质量的多种输出方式：彩色字幕输出、黑白蒙板输出以及 TGA 图象序列输出三种方式；
> > 8. 歌词工具提供输入音频的正常播放、慢速播放、手动播放三种方式，这样可以制作出非常精确的歌词脚本；
> > 9. 歌词工具同时支持纯歌词文本、ktl 歌词描述文件以及.ksc 歌词脚本的输入，最终生成.ksc 歌词脚本；
> > 10. 利用系统媒体播放器功能，歌词工具支持各种音频素材，如 AVI，WAV，MPA，MP3，MPG，DAT，MPG2 等；
> > 11. 每行歌词可以单独设置颜色；
> > 12. 英文歌曲制作；

> ## 1.3 快速入门

> > 运行 Karaoke Builder 3，点“系统功能”按钮，输入一个歌词脚本如：好人好梦.ksc，然后点“卡拉 OK 试播”，你将在屏幕上看到卡拉 OK 变色字幕的效果，点“停止”钮，再点“记录字幕视频”，生成卡拉 OK 字幕视频素材。

# 二、播放和生成工具KBScripts

## 2.1 工具条

KBuilder 的工具条上的按钮控制字幕脚本的播放和生成以及参数的设定。有些按钮边上还有可以下拉的菜单条，可以提供很多附加的功能。

从左至右依次是：系统功能、播放、暂停、停止、开始位置、记录字幕视频。最右边的数字是当前播放的时间位置。

系统功能 | 点击“系统功能”时提示打开卡拉 OK 歌词脚本文件，KBuilder3 同时支持.ktl 和.ksc 两种格式；
卡拉 OK 试播 | 播放当前的卡拉 OK 脚本，查看卡拉 OK 字幕效果以及与歌曲音频的同步情况；
暂停 | 卡拉 OK 试播时暂停，再按暂停时继续播放；
停止 | 停止卡拉 OK 试播或视频输出，时间回到开始位置；
记录字幕视频 | 把卡拉 OK 字幕视频输出到文件；

系统按钮还可拉下下面的功能：打开卡拉 OK 脚本文件、打开多媒体音频文件、影音同步模式、背景透明显示、装入配置文件、脚本窗口、退出系统、关于卡拉 OK 字幕生成器；

打开卡拉 OK 脚本文件 | 装入卡拉 OK 歌词脚本，用于播放或生成字幕素材；
打开多媒体音频文件 | 打开与字幕相应的音频文件，在播放时可以与卡拉 OK 字幕一起检验影音的同步情况；
影音同步模式 | 控制是否以正常速度播放。非同步模式时，卡拉 OK 字幕以最快的速度播放；
允许播放多媒体音频 | 当装入了与.ksc相关联的多媒体音频文件时，可以通过设置该选项决定是否在卡拉OK播放的同时播放对应的多媒体音频；
生成AVI时包含音频 | 该选项设置在输出卡拉OK字幕素材的AVI文件时，是否包含音频部分。如果需要该项功能，则必须满足如下条件：要有相应的wav音频文件，而且该wav文件的格式是16位立体声，44100hz采样，不压缩的PCM音频文件；
装入配置文件 | 装入用户自定义的配置文件，主要包括字幕素材的大小、颜色、字体、每屏行数等属性的设置。它下面的菜单项是预置的一部分配置文件，如VCD PAL，VCD AUTOSIZE等，值得注意的是凡带有AUTOSIZE的配置其宽度是固定的，高度会根据字体和间距等自动选择一个最小的值，例如VCD AUTOSIZE的大小可能会是352x66；而TITLE ONLY是不变色字幕的配置
设置字幕字体 | 在这里可以设置输出的字幕的字型和大小
保存当前设置 | 把当前的配置保存到指定的配置文件中。这样下次启动KBuilder后，该配置文件名会出现在系统的配置文件菜单中；
脚本窗口 | 提供一个手工键入 KBScripts 命令的窗口，以便更灵活地控制 KBuilder；
退出系统 | 退出当前的所有操作，返回到操作系统；
关于卡拉 OK 字幕生成器 | 对卡拉 OK 字幕生成器的一些简单介绍
声道选择 | 选择左、右、立体声道
音量控制 | 设置音量大小

记录字幕视频可以拉下如下功能：彩色字幕视频、黑白字幕蒙板、TGA 图象序列、视频输出文件、TGA 图象序列输出路径。

> 彩色字幕视频 | 设置输出的字幕素材为彩色字幕视频，这种素材可以在以后的视频编辑软件中单独使用，以前的版本只能输出这种类型的素材；
> 黑白字幕蒙板 | 这种字幕素材只能与前一中彩色字幕配合使用，利用它充当动态的 Alpha 通道，在 Adobe Premiere 软件中可以用 Track Matter 生成很好的字幕效果；
> TGA 图象序列 | 这种方式将按顺序输出若干 TGA 图象文件，可以在不同的视频编辑软件中使用。尽管能提供比较好的字幕视频效果，但因为生成的文件过多，占用的空间过大，所以在使用时会有很多限制，装载和生成的速度也可能会比较慢；
> 视频输出文件 | 设置将要输出的视频文件名，默认值是将歌词脚本的扩展名改成.avi（彩色字幕）和.alpha.avi（黑白蒙板），目录也与歌词脚本文件所在的目录相同；
> TGA 图象序列存放路径 | 设置 TGA 文件序列存放的目录，默认值是 TEMP 环境变量指定的路径。

> ## 2.2 关于配置文件

> 实际上配置文件(profiles)本身也是用 KBScripts 写的，其扩展名为.kpf，存放在 KBuilder 安装目录下的 Profiles 子目录下。每一种配置文件就是一个脚本文件，除了系统预先设定的几种配置文件以外，用户自己也可以根据需要定义自己的配置文件。假如有人经常要做 SVCD 格式的像册，他的模板已经定好了，希望卡拉 OK 字幕素材符合这样的要求：输出用于 SVCD PAL 的字幕素材；用尽量小的尺寸（以节省空间和减少处理时间）；常规字幕用黄色；变色颜色用红色；字体用隶书，大小是 26 点，加粗；上下两行歌词，歌词之间的间隔是 4 个像素点。那么他所需要的配置文件可以这样写：

> > ///////////////////////////////////////////////////////
> > // 文件名：像册 SVCD 配置.kpf
> > ///////////////////////////////////////////////////////
> > karaoke := CreateKaraokeObject;
> > karaoke.TopMargin := 4;
> > karaoke.Width := 480;
> > karaoke.NormalColor := RGB(255, 0, 255);
> > karaoke.AnimateColor := RGB(255, 0, 0);
> > karaoke.Font('隶书', 26, True);
> > karaoke.Rows := 2;
> > karaoke.FirstAlignment := 0;
> > karaoke.FirstIndent := 40;
> > karaoke.NextAlignment := 1;
> > karaoke.NextIndent := 40;
> > karaoke.LineSpace := 4;
> > karaoke.AutoSize := True;

# 三、歌词脚本制作工具KBTools

> 歌词脚本制作工具利用已有的卡拉 OK 歌曲音频或视音频文件作为参照，从中获取每行歌词从何时开始显示、何时开始变色、每行歌词的每个字的染色需要多长时间。

> ## 3.1 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，这个值是一个相对比例。你可以用节拍值表示，也可以用实际时间值表示，在这个例子中，我们可以这样计算一下这行歌词中每个字符的实际变色的时间：
> 这行歌词总的变色时间长度：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 字幕，我们可以通过慢速播放或手工操作移动视频位置，从而比较精确地做出与原来多媒体视频字幕时间相一致的字幕脚本。

> ## 3.2 KBTools用户界面

> ## 3.3 工具栏

> 工具条从左至右依次为：打开多媒体文件、打开歌词文本或脚本文件、歌词脚本存盘、歌词脚本另存为、歌词编辑状态、自动换行、卡拉OK试播窗口。

> | 打开多媒体文件 | 装入包含音频的多媒体文件，可以是任何多媒体文件
> | 打开歌词文本或脚本文件 | 装入需要修改的纯歌词文本、歌词描述.ktl 或者歌词脚本文件.ksc
> | 歌词脚本存盘 | 把生成好的歌词脚本保存起来，原来装入的歌词文件将被覆盖
> | 歌词脚本另存为 | 把歌词脚本取另外一个名字保存起来
> | 歌词编辑状态 | 在这种状态下，可以直接对正在处理的歌词脚本直接修改；非编辑状态时，可以通过敲键盘确定歌词的变色时间
> | 自动换行 | 在前一行歌词设定好以后，是否自动设置下一行的开始位置。这在节奏比较快的歌曲部分有用
> | 卡拉OK试播窗口 | 显示卡拉OK播放窗口

> ## 3.4 卡拉OK试播控制

> 从左至右的四个按钮的功能是：播放，暂停，倒回，停止

> | 播放 | 如果选定了歌词，则播放选定的歌词行，否则播放全部歌词。注意，如果选定的歌词描述不完整，那么没有任何反应。
> | 暂停 | 暂时停止卡拉OK试播放。
> | 倒回 | 把时间退回到开始处。
> | 停止 | 停止卡拉OK试播，把时间退回到开始处。

> ## 3.5 控制小键盘

> 在使用快捷键时，请注意要把“Num Lock”灯打灭。
> 最重要的键：5 - 单字点击。按下此键后，程序将把每个单字的时间记载下来；4(左箭头) - 单步后退，每按一下，多媒体视音频流往后退指定的时间或帧，6(右箭头) - 单步前进，每按一下，多媒体视音频流往前进指定的时间或帧；4 和 6 移动的步长可通过按+和-改变，这样可以调整移动的时间精度，面板的右上角显示了当前的步长值。

> 7(Home) - 设置段开始时间，1(End) - 设置段结束时间。这个功能在微调时，如果只需要修改每行歌词的开始和结束时间有用；
> 9(PgUp) - 移动多媒体流到歌词指定的开始时间位置，3(PgDn) - 移动多媒体流到歌词指定的结束时间位置。按“回车”键正常播放多媒体。

> 8(上箭头) - 移动到上一行歌词；2(下箭头) - 移动到下一行歌词。

> 空格 - 播放/暂停多媒体音频。

> 退格 - 取消上次单字点击(5)。

# 四、使用提示和技巧

> 4.1 在歌词脚本工具怎样设置象“男：”，“女：”这样的提示字？

> > 卡拉OK脚本的歌词行描述格式是：
> > karaoke.Add('99:99.999', '99:99.999', '歌词', '时值'[, '提示字' ]);
> > 在这个定义中“提示字”是可有可无的，所以如果需要提示字时，就可以在歌词脚本中手工加上即可。不光是一个字的提示，其它的提示都是可以的，比如象“童声合唱:”这样的提示字也是可以的。例：
> > karaoke.add('00:29.696', '00:32.537', '从来没有人如此', '1', '女:');

> > 另一种简便的方法是在歌词前面直接加提示字，用括号括起来，其它地方不变。格式是：
> > karaoke.Add('99:99.999', '99:99.999', '(提示字)歌词', '时值');
> > karaoke.add('00:29.696', '00:32.537', '(女:)从来没有人如此', '1');

> 4.2 我每屏只想要一行歌词，怎么办？

> > 有两种办法：一种是在歌词脚本中加入下面的代码：
> > karaoke.Rows := 1;
> > 另一种办法是做一个配置文件，在该文件中加入上面的代码。

> 4.3 为什么在 Adobe Premiere 中，卡拉 OK 字幕视频很大并且在屏幕中央？

> > 造成这种情况的原因：用 KBuilder 生成的字幕素材是压缩的图象，不是通常的 VCD 尺寸，在这种情况下，对 Premiere 要做一些设置：
> > 1.保持原图象的长宽比例：Video > Maintain Aspect Ratio；
> > 2.设置填充颜色，Video > Aspect Fill Color，将其设置为与字幕素材背景相同的颜色，默认为 0,255,0；
> > 3.设置透明：Video > Transparence，Key Type 选 Green Screen；
> > 4.将字幕视频往下拉，使字幕放置在图象的下方：Video > Motion，使 Start 和 End 的位置都是 0, 20，另外 Fill Color 选择字幕背景色。光盘中Sample目录下有个ok.pmt文件，在Motion设置中，可以Load该文件，把字幕放置在图象下方。

> 4.4 怎样才能使最终输出的字幕效果最好？

> > 这是经过一段时间的使用后，大家普遍关心的问题。以前为了节省空间，在生成字幕avi时，我总是建议大家采用Microsoft Video 1压缩编码方式，因为采用其它压缩编码的效果更差，但对其最后生成的字幕效果总感到不满意。其实，最好的效果还是不压缩（当初费了九牛二虎之力才弄好avi压缩，没想到...），在Premiere中使用Green Screen抠像，效果已经很不错了，字幕很清晰，唯一的缺点是制作成VCD后，字幕周围在图象变化的时候有些起糊。

> 4.5 在KBuilder3中怎样设置透明色？

> > 在Karaoke Builder 3的播放和生成工具中，如果发现当前的背景颜色不是纯绿色，或者自己不喜欢的颜色，可以通过在歌词脚本.ksc文件中增加一行语句：
> > karaoke.transparentcolor := rgb(0, 255, 0);
> > 这行语句可以放置在karaoke := CreateKaraokeObject;之后的任意一行。

> 4.6 怎样使男声和女声的字幕颜色不同？

> > 在最新的KBuilder 3.1中，提供了设置每行颜色的功能，格式是：
> > 一、设置全局颜色，这种设置可以设置后续的所有歌词，直到被再次设置为止：
> > karaoke.setcolor(rgbcolor);
> > 二、单行设置，在歌词行中设置：
> > karaoke.add('00:29.696', '00:32.537', '从来没有人如此', '1', '女:', rgb(255,0,0));
> > 或者
> > karaoke.add('00:29.696', '00:32.537', '从来没有人如此', '1', rgb(255,0,0));

> 4.7 制作英文歌曲有什么好办法？

> > 英文歌曲的歌词跟中文歌曲有些不同，一般是按单词或音节来确定每一敲键单位，如果以字母为单位来制作的话，显然制作起来就太麻烦。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:44.202', '00:47.071', '[emptiness ][I''ll ][send]', '64,12,10');
> > karaoke.add('00:47.205', '00:50.074', '[you ][all ][my ][dreams]', '8,8,12,58');
> > karaoke.add('00:50.207', '00:55.078', '[everyday ][in a ][le][tter]', '42,26,12,58');
> > karaoke.add('00:55.144', '00:57.813', '[sealed ][with a ][kiss]', '24,18,38');
> > karaoke.add('00:59.014', '01:02.017', '[I''ll ][see ][you ][in the]', '14,20,40,22');
> > 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('01:10.107', '01:13.226', '[I''ll ][run ][to ][tenderly]', '10,26,12,38');
> > karaoke.add('01:13.292', '01:17.629', '[hold ][you ][but ][darling]', '18,52,16,44');

> > 第4行的"[le][tter]"和第7行的"[sun][light ]"以及第8行的"[every][where]"都是把一个单词按音节划分成若干部分的。

> > 另外需要注意的是歌词中的'要用两个''表示，以免与表示字符串的'混淆。

> 4.8 用KBuilder制作的字幕很模糊，为什么？

> > 在Windows98中选择“控制面板 > 显示 > 效果”，把视觉效果的“圆整屏幕字体边角”的勾去掉。在NT和2000中也有相应的设置项。

> 4.9 安装KBuilder后运行Karaoke Builder时出现“类没有注册”的错误提示，怎么解决？

> > KBuilder使用了Windows的媒体播放器播放各种多媒体文件，出现这种错误提示时，建议安装6.x或以上版本的媒体播放器即可解决这个问题。

> 4.10 在使用Karaoke Builder生成字幕视频文件时，怎样把相应的音频合到.avi文件中？

> > Karaoke Builder支持输出带音频的字幕素材文件，但要求相应的音频是16bit，44k，stereo格式的.wav文件，并且在输出前勾上“生成AVI时包含音频”菜单项（按鼠标右键即可呼出该菜单）。
> > mpa, mp3到wav的转换最简单的办法是用Winamp，也可以用其它专业音频处理软件转换。

# 五、安装

> 运行 KBuilder3 的安装光盘或者下载的安装程序中的 Setup.exe，即可开始运行安装程序，安装过程中的选项都选择默认值即可。

> 升级到 KBuilder 3.1：运行光盘中 Update 目录下的 kb31upd.exe，点“升级”按钮即开始升级到 Karaoke Builder 3.1。升级文件也可以从网上下载得到。

> 输入注册资料

> KBuilder3 在安装完成后第一次使用时，会提示“注册 Karaoke Builder”，这时：

> 一、如果您是非注册用户，没有得到注册资料的话，就可以选择“以后注册”，非注册用户只有在视频输出上有限制，其它功能全部能用；如果您想成为注册用户的话，请先看看这里：怎样注册。

> 二、如果您已经获得了注册资料的话，请点击“装载注册资料”，注册资料文件是从作者那里获得的，一个叫 user.dat 的资料文件，读入该文件后，您的名字会显示在“姓名”栏，再把注册码填在“注册码”栏即可。

> 注册成功后，可以点击菜单：“帮助 > 关于 KBuilder3”，弹出的窗口中会显示“此软件的使用权属于: [xxx]”，并在右边显示“已注册”三个醒目的字。