Karagodktv -- 可升降调和消人声的在线K歌平台 (A online karaoke platform that can do pitch shifting and human voice removal)

Posted by Daqi's Blog on July 26, 2016

第一篇博文写什么好呢? 与其抒情不如分享点有用的东西:) 踌躇于选择一款最近用过的软件, 我最后决定推荐我自己做的一款应用 – Karagodktv. 话说这个应用做出来快两年了,最初是计院Orbital的项目, 拿了个小银奖。 作为一款在线K歌平台,她的特点有

  • 支持上传伴奏和LRC歌词
  • 对于用户上传的伴奏,可即时消除人声
  • 即时升降调 (6b ~ 6#)
  • 麦克风即时反馈
  • 下载录音 (wav 或 mp3)

亦有如下技术细节:

  • 是Web上的Flash应用
  • 采用Actionscript的音频相关库编写
  • 用反波(inverse wave)叠加消除人声(相当于Adobe Audtion的Center Channel Extraction)
  • 升降调(保持速度)采用了一个github上的开源项目
  • 后端是用Google App Engine host的 (省去了手动配置VPS和数据库的麻烦,但也限制了带宽和数据储存类型)

除了录制翻唱,此应用还用一种用法,就是将需要的配置勾上(升降调或是消人声)空录(实际上是空放)一遍, 应用就能自动保存这一段流音频, 以让用户得到消除人声或者升降指定调的伴奏。

然而,由于当时的时间压力,这个应用留下了待改善的诸多缺点。 最主要的一点是她的Flash载体: 作为一个后台消耗巨大资源的插件, Flash对功效的影响及其缓慢的速度完全压倒了其高扩展性的优势, 在很大范围内已必被Html5及其相关技术取代。 另外还有如下几点:

  • 虽然采用了FFT+缓存作为音频处理策略以便即时录音, 然而却没有做整曲处理的扩展, 使得欲保存整曲的用户需要等待曲目播放完毕才能下载
  • wav转mp3非常缓慢,应改为即时编码
  • LRC匹配有错乱的机率
  • 麦克风的反馈有延迟,尚未找到解决方法
  • 网站的评论和分享区块比较简陋,Facebook支持不完善

最后,附上应用的链接 Karagodktv, 如果您试用后觉得不错, 请分享一下, 并给出您宝贵的意见。

Translation:

This is the first post! What to write? I have finally decided to recommend an application I do - Karagodktv. This web app has come out for almost two years, which initially was a SoC Orbital project (a web app development competition). I have took a silver medal. As an online karaoke platform, her features are

  • Support upload of accompaniment and LRC lyrics
  • Eliminate the human voice in accompaniment uploaded by users
  • Real-time pitch shifting (6b ~ 6#)
  • Instant microphone feedback
  • Download Recording (wav or mp3)

There are also technical details such as:

  • Flash applications on the Web - Written in ActionScript-related audio libraries
  • Eliminate vocals with inverse wave overlay (equivalent to Adobe Audtion’s Center Channel Extraction)
  • Pitch shifting (with unchanged duration) is inspired by a Github open source project
  • The back-end is hosted by Google App Engine(eliminating the need to manually configure the VPS and database, but also limiting the bandwidth and data storage type)

In addition to recording cover, this application also has a usage - after you tickle all configurations you want and play the song from beginning to any time you want, it saves the audio you hear during this period (which allows you to make accompaniment with removed human voice or shifted pitch).

However, due to time pressure, this application left a number of shortcomings to be improved. The main deficiency is her Flash base: As a plug-in that consumes huge mount of hardware resources, The lack of efficacy and the slow speed of Flash completely overwhelmed its advantage in high scalability. In fact, in a vast range of contexts, Flash has been completely supplanted by html5. Also, there are other defects/bugs:

  • Although I have adopted FFT+ cache as the audio processing strategy for real-time recording, I did not enable the transformation functions for the full file. Unfortunately, user who wants to save the song has to wait for the track to complete after he/she can download it.
  • Wav-to-mp3 conversion is very slow, which should be changed to real-time encoding.
  • There is chance of wrong LRC matches
  • There is perceivable microphone feedback delay.
  • The site’s comments and sharing blocks are relatively simple and the Facebook integration is also limited

Finally, here is the link to the application Karagodktv. If you feel good after the trial, please share and give your valuable advice.