[WIP]通过音频预处理、分析和可视化,辅助制作LRC时间轴

作者:V君 发布于:2019-3-31 13:50 Sunday 分类:折腾手记

~打破常规先扯一扯~

这个月发生的事情有点多,本想做到一定程度才发出来,现在已经到了最后一天,不想在归档上出现不连续的月份,只好提前发布出来。这次要折腾的内容和上一篇文章一样,也是围绕着LRC歌词的制作方法展开。

上次折腾了日文平假名标注,虽然有个别平假名有错误转换(像诗一样的歌词,就算人工也难免会有失误吧),但歌词文本制作的总体的效率得到极大地提升。一旦习惯了自动化,就会对手工活儿变得无法接受。

目前LRC的时间轴制作方法是使用上古时期的Winamp和LRC小工具,一边听一边在对应的时刻将时间戳插入文本行首。制作一首歌的LRC时间轴需要一遍又一遍地听同一首歌以便确认时间轴的准确性,尽管不讨厌这样做,但这种方法的效率极其低下,需要想办法自动化处理,哪怕半自动半人工都好。

回想起以前折腾音频处理,将人声部分提取出来的折腾经历,想到用清唱音频可视化,这样就能把人声的音频时间段以图形的方式呈现出来,从而获取图形位置对应的播放时间。让我们进入正题吧。

~正题~

以下是计划和目前的实现进度,源代码在Gogs上,目前没有直接可用的二进制版本。

  • 1. 在Au手动将原唱版本和波形反向的伴奏版本调整混合,或者没有伴奏版本时,用效果稍稍差一点的立体声中置声道处理也凑合,将人声部分提取出来,导出保存成16Bit单声道的MP3或者WAV;
  • 2. 用NAudio将导出的音频文件加载到内存,按时间分块的平均音量阈值分段,再消抖一下去掉较短的分段;
  • 3. 绘制采样和分块图形,配合鼠标操作获取时间点和分块范围 (目前实现到这里,以下为TODO)
  • 4. 在指定时间点开始回放,在分段循环播放,指定区段循环播放,将前三者的时间应用到LRC,从而实现半自动LRC时间轴制作;
  • 5. 寻找适用的算法分辨每个字(词)的时间段,匹配到以行为单位的歌词文本,实现初步自动化;
  • 6. 寻找适用的预处理算法或服务,直接从人声中提取文本,实现进一步自动化;
  • 7. 以编程的方式实现步骤1,从而达到完全自动化。

~稍稍展示一下目前的效果~

点击查看原图

标签: 软件开发 C# 图像处理 多媒体 音频

引用地址:

发表评论:

Powered by emlog 去你妹的备案 sitemap