宅K
ZH-CN

卡拉OK的“擦除效果”是什么?歌词逐字变色的原理

作者: Hitokara 编辑部 发布: 更新:

卡拉OK包厢的沙发座位上,穿白色针织衫的女子手持麦克风笑着唱歌。桌上放着饮料和小吃,后方有一台画面色彩缤纷的电视。

逐字高亮(擦除效果)指的是:随着歌曲的播放位置,歌词一个字一个字地变色。原理是歌词里的每个字都带着“什么时候开始唱、什么时候唱完”的时间,再拿它和播放位置对比,算出颜色该推进到哪里。

歌词的“时间信息”是什么?

歌词数据的时间精细程度并不一样。

  • 按行。只知道每一行从什么时候开始,显示效果是一行一行地切换。
  • 按词或按字。每个字都有开始和结束的时间。逐字高亮需要的是这一种。

没有逐字时间的歌词,只能按行显示。

播放位置是怎么知道的?

宅K 会读取“音乐”App 里正在播放的歌曲位置。不过读取是隔一段时间进行一次的,直接用的话,颜色会一顿一顿地走。所以在两次读取之间,会根据流逝的时间推算位置,让颜色平滑地往前走。

种着行道树的市区人行道上,穿深蓝外套的男子一手触碰耳机一边走路,身后可见其他行人。

颜色为什么是“慢慢渗开”的?

在单个字的内部,也会算出从开始到结束的进度(0~100%),只涂对应的那一部分。看上去就像一个字被涂了一半。

手机演唱画面,歌词中的“時”字从左侧开始染上一半红色。

歌词为什么会错位?

  • 蓝牙耳机的延迟。声音晚到,所以歌词看起来跑在前面。可以用全局偏移来补偿。
  • 歌词数据的差异。播放的歌曲版本和歌词原始数据略有出入时,就会错位。可以按歌曲以 0.1 秒为单位微调。
歌词上方并排显示 −100ms、+100ms 微调按钮与播放控制键的画面。

KTV 风格的“翻页”是什么?

KTV 风格的显示会把几行歌词作为一组(一页)一起展示,随着唱完的行,下一页的歌词依次出现。这样就能提前看到接下来要唱的歌词。

电视演唱画面,两行歌词分置左上与右下,底部排列着操作栏。

延伸阅读:歌词对不上的修正方法、卡拉OK用语一次看懂。