自建家庭 KTV,在家想嗨就嗨
现在用户最多、曲库最多的 K 歌软件是全民K歌,基本上想唱的歌都有,而且基本上每首歌都有 MV 或视频,使用体验也还不错,但是收费太贵了,对于一个月唱不了几次的打工人来说,唱一首歌就是“天价”。那是不是可以选择其他 K 歌软件呢?
比如唱吧,曲库是真的有限,很多歌都没有,有些歌也不是原唱,大部分歌没有 MV,就一张默认的背景图片,恕我直言:没有 MV 的 K 歌软件就是垃圾。至于更多的其他 K 歌软件,真是一个比一个垃圾,也就三六十万的曲库也敢号称海量,可能是梁静茹给它们的勇气吧。
网上有很多卖破解版的 K 歌软件,首先是曲库有限,其次是搞不好哪天官方把漏洞堵上了就不能用了,使用体验极差。而网上找到的一些开源的 K 歌软件,基本上都是有音乐没有 MV,且曲库来源第三方,很多歌都没有,基本没法用。那有没有其他可以永久免费无限量的 K 歌的软件呢?
功能介绍
本 KTV 系统适合不闲麻烦且非土豪的家庭/个人使用,本系统需要自建曲库,在此基础上支持点歌、切歌、原唱/伴奏切换、音量调整、暂停等 K 歌软件的核心功能,所有功能支持手机端控制,且全系统、全平台都可以使用。
页面介绍
系统总共只有 4 个页面,分别是曲库列表展示页面、音视频预处理页面、K 歌视频播放页面、手机端控制页面。其中 曲库列表展示页面 和 音视频预处理页面 做的比较简单,因为这两个页面在 K 歌的时候是用不到的。K 歌视频播放页面看着也挺简单的,其复杂的地方在控制逻辑,而不是页面展示。手机端控制页面已经尽可能地适配手机了,在手机、平板等竖屏设备上页面展示效果较好,但是在横屏设备上,页面展示就不那么友好。
曲库列表展示
该页面是首页,其他页面的跳转都在这个页面:

音视频预处理
该页面主要用来做音视频的简单处理,包括音频提取、音视频格式转换、修改视频元数据等:

歌曲视频播放
该页面主要用来播放歌曲视频 MV 的,另外包括音视频同步、音视频控制等功能也在此页面实现的:

手机端控制
所有 K 歌需要的核心功能这里都有,特别针对手机端做了适配:

自建曲库
为什么要自建曲库呢?绝大部分人唱歌可能来来回回也就不过百首,喜欢唱歌的人盲猜会有千首吧,因此不管那些 K 歌软件的曲库是多少万首,只要你想唱的歌没有,那它就不是一个好的曲库。任何 K 歌软件的曲库都是很有限的,如果曲库里没有你想唱的歌,你也没有任何办法,它不受你个人的控制。自建曲库的好处就是整个互联网都将是你的曲库,国内各大视频网站、短视频平台的歌曲 MV 都可以下载下来作为你的曲库(网上有很多下载方法,即使不能下载也还是有办法),如果喜欢国外歌曲,那么 Youtube 也可以是你的曲库,所以完全可以唱任何你想唱的歌,看你想看的 MV。且对于大部分人,自建曲库的时间成本很低的,完全可以均分到日常 K 歌中。
歌曲下载
很多歌曲都可以在 B 站找到,大部分都有带 K 歌字幕的视频,这种视频就非常适合下载下来作为曲库;如果实在找不到带 K 歌字幕的视频,普通的 MV 视频也是可以的,就是 K 歌体验不是很好。另外,像腾讯、爱奇艺、优酷等视频网站也可以看有没有 MV;像微博这种,如果有合适的视频的话也是可以用的;实在不行,抖音、快手等也是可以的;最后的最后就是去 Youtube 找了。
视频预处理
歌曲视频需要处理才能使用,步骤依次是从视频中提取音频、把音频中的人声和伴奏分离、去掉视频中的音频、把视频元数据放到视频头部。下面依次介绍每个步骤。
音视频格式转换
本系统支持的视频格式是 mp4,支持的音频格式是 mp3,如果不是这种格式,需要进行转换,直接使用系统提供的格式转换能力,在页面上操作很方便。
音视频提取
首先需要从视频中提取出音频,其次需要把视频中的音频去掉(其实这步不做影响不大),最后把视频文件的元数据放到视频的头部(这步必须做,否则严重影响 K 歌体验)。以上都可以直接使用系统提供的音视频提取能力,在页面上操作很方便。
分离人声和伴奏
这步操作极其重要,是自建曲库的核心步骤。有很多 K 歌软件的伴奏和人声分离不是很好,伴奏中带有人声,但是近些年人工智能大模型的出现,人声和伴奏的分离效果越来越好了。以下汇总了免费的人声和伴奏分离软件:
1、ultimatevocalremover:简称 UVR,号称天花板级别的音频处理软件,可选择不同的模式和下载不同的模型,具体用法可网上查阅资料。Windows 和 Mac 电脑直接下载即可运行,Linux 系统需要自己编译部署;
2、vocal-separate:极简的人声和伴奏分离软件,效果还可以,速度也挺快的。Windows 系统直接下载就可以用,Mac 和 Linux 系统需要自己部署;
3、Replay:还不错的人声和伴奏分离软件,全平台支持下载安装即可使用,需要自己下载训练好的模型;
4、Adobe Audition:Adobe 公司出品的音频处理软件,没用过,但既然敢拿出来卖,效果应该很不错。网上有很多破解版的可以用哦。
通过使用上述软件分离歌曲的人声和伴奏,最终会生成 2 个音频文件,分别是人声的音频和伴奏的音频。如果音频格式不是 mp3,请将它们转换成 mp3 格式。
上传音视频文件
将处理后的音频和视频文件命好名,建议以歌曲名-歌手这种方式命名,这样在搜索歌曲时,通过歌名和歌手都可以搜到。
音视频命名是有规范的,以大鱼-周深这首歌为例,视频文件的名字是大鱼-周深.mp4,人声文件的名字是大鱼-周深_vocals.mp3,伴奏文件的名字是大鱼-周深_accompaniment.mp3。也就是说人声音频的文件名要加上 _vocals,伴奏音频的文件名要加上 _accompaniment,且音频文件格式必须是 mp3,视频文件格式必须是 mp4。音视频文件上传成功后,这首歌就加入到你的曲库里了,然后就可以点歌和 K 歌了。
点歌
在曲库列表展示页面,可以从曲库中搜索歌曲,然后点歌。点歌时,会去校验音视频文件是否都有,校验逻辑是按照命名规范去找文件是否存在,如果校验不通过,则不能点歌。
开始K歌
进入 K 歌视频播放页面即可开始 K 歌,该页面主要就是视频播放,外加简单的控制功能。
温馨提示:正式 K 歌时,可设置浏览器全屏展示 或者 视频全屏播放,这样用户体验最好。
特别注意:由于浏览器的安全限制(Google 浏览器和 Edge 浏览器有,其他浏览器未测试),在第一次进入网页或者刷新网页后,第一次播放视频需要手动触发,无法自动播放。官方给出的解释是:避免未经用户操作自动发出声音。
一个比较鸡肋的小功能:如果你家里每个房间都有电视屏幕,想每个房间同时播放歌曲的 MV,那么每个设备都可以打开这个 K 歌页面,通过手机端就可以同时控制这些页面的歌曲播放。
手机端控制
手机扫码即可快速打开控制台页面(微信扫码或者浏览器扫码),然后就可以愉快地用手机来控制 K 歌了。控制台界面如下:

说实话,这个页面样式就是参考全民K歌的手机点歌页面,展示了当前正在唱的歌和下一首歌、切歌、原唱/伴奏切换、音量调整、开始/暂停、重唱、各种互动音效等,可以点歌,也可以查看已点歌曲列表,总之这个页面的功能基本上满足 K 歌需求。
开源地址:https://github.com/leeyoshinari/karaoke
自建家庭 KTV,在家想嗨就嗨的更多相关文章
- TTTTTTTTTTTTTTTTTT POJ 2724 奶酪消毒机 二分匹配 建图 比较难想
Purifying Machine Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5004 Accepted: 1444 ...
- 在家想自学Java,有C语言底子,请问哪本书适合?
一.问题剖析 看到这个问题,我想吹水两句再做推荐.一般发出这个疑问都处在初学编程阶段,编程语言都是相通的,只要你领悟了一门语言的"任督二脉",以后你学哪一门语言都会轻易上手.学语言 ...
- 红星美凯龙CEO车建新的圆融和霸气
待人接物中车建新有许多习惯,与别人一起行走时,走在靠马路的一边:吃饭时最好的菜留给客人.他说,做人往往就在细节中,别小看一个举动,无意中就会感染别人.和别人在一起,你要时时刻刻先考虑对方. 细节上体察 ...
- [web建站] 优课急送《零基础快速学习建站》视频+课件【价值399元】
[课程介绍]你想快速建一个网站出来吗?你想从什么都不懂到一两天出一个漂漂亮亮的站吗?你想完成领导交给你的任务找人建站吗?你想自己建站来创业吗?你想学会建站之后,利用给别人建站来赚钱吗?你想建一个跟某个 ...
- vps建站教程 CentOS6如何安装配置FTP服务器
通过之前的几篇文章,我们都知道了如何配置PHP环境,也知道如何保护我们的vps以及如何绑定多个域名建设多个网站.有时候我们为了让我们的朋友也能用我们的vps建站又不想给他们太多权限,有时候我们想要当个 ...
- 支持中文!秒建 wiki 知识库的开源项目,构建私人知识网络
不知道有没有人和我一样,觉得自建的东西是互联网上的"自留地".私人空间,有一种自己的一亩三分地随心所欲的痛快. 比如自建的博客想写什么随笔就写什么,不用取悦读者可以自娱自乐:再比如 ...
- re.match re.search re.findall区别
re正则表达式里面,常用的三种方法的区别. re.macth和search匹配得到的是match对象,findall得到的是一个列表. match从字符串开头开始匹配,search返回与正则表达式匹配 ...
- 机器时代的中国字幕(Automata.2014.720p.WEB-DL.DD5.1.H264-RARBG.srt)
看字幕.再也看不下去.自己翻译的位 评价的探讨 1 00:01:58,452 --> 00:02:02,088 人工增雨 期限为32分钟16第二 2 00:02:02,089 --> 00 ...
- SharedPreferences 的另一种场景的用法
SharedPreferences 的另一种场景的用法 昨天,下班在家想做什么来着,然后想用SharedPreferences存点数据,但是不知道咋地突然想到,SharedPreferences是应用 ...
- 本周进步要点20161023(含李笑来第二场live笔记要点)
本周主要忙于去武汉参加iDOF2016智能数字油田会议,会上做了题为“油田SOA及云平台的系统思考与实践”的报告,为了准备这篇报告,用到了一些以前学过的知识,具体内容见“参加iDOF2016会议的收获 ...
随机推荐
- springboot项目启动时禁止Redis、数据对象加载
1.背景 2.实现方式 启动类上添加需要排除的自动装配对象 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, H ...
- 纯css美化滚动条样式
https://www.emperinter.info/2020/09/20/scrollbar-in-browser/ 自己完善自己博客再Ipad等移动端的菜单时选用了左右滑动的菜单模式!当然就会使 ...
- div上固定,下自适应;div左固定,右自适应
一,上固定,下自适应 1,代码 <div class="all"> <div class="top">111</div> ...
- JNA使用入门
JNA即Java Native Access. 官方主页 代码仓库 官方样例 maven中心仓库主页 官方文档 Getting Started Functional Description. Mapp ...
- JavaScript魔法:在线Excel附件上传与下载的完美解决方案
最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 前言 在本地使用Excel时,经常会有需要在Excel中添加一些附件文件的需求,例如在Exce ...
- 简简单单教你如何用C语言实现获取当前所有可用网口!
一.获取本机所有可用网卡名 原理: 在 Linux 系统中,/proc 目录是一个位于内存中的伪文件系统. /proc目录是内核提供给我们的查询中心,通过查询该目录下的文件内容,可以获取到有关系统硬件 ...
- CANopen学习笔记(三)NMT
NMT NMT主要用来管理和控制各个节点的状态,具体协议可以分为以下四类: NMT protocol Node guard protocol Heartbeat protocol Bootup pro ...
- Modbus ASCII 获取数据
根据银河高低温试验箱协议读取数据 1.协议内容 8.1:通讯协议介绍 8.1.5 通讯设置 本通讯协议使用异步串行通讯方式,1 个起始位.8 个数据位.2 个停止 位.无奇偶校验数据通讯格式,其中数据 ...
- Standard Quorum Intersection
标准定足数交集 定义和背景 系统模型: 系统中有 \(n\) 个节点,其中最多 \(f\) 个节点可能是拜占庭故障节点(恶意节点). 为了保证容忍 \(f\) 个拜占庭节点,系统通常需要至少 \(3f ...
- 【Python自动化】之利用JS操作页面滚动条(新)
如何操作页面中的滚动条,有以下几个方法: 一.查找可见元素进行滚动页面(通用) 方法一: ①移动到元素element对象的"顶端",与当前窗口的"顶部"对齐(默 ...