夢想妖夏

神的随波逐流-中文版 中毒

2015-01-05

入坑,无聊写了个B站弹幕逆变成歌词
【泠鸢·填词】神的随波逐流-中文版【神的自我催眠= =b】
今天无意听歌
然后喜欢上

这首歌曲

想要歌词(>_<),因为另外一个妹纸翻唱了,但是她的没有歌词,而且也没人气,正好自己也想要歌词

于是找了下,弹幕里面有歌词,UP主设置了保护,仔细一查,发现里面还是漏了几句的
大体的,我们可以抓到歌词是以下

所以说  别向我祈求太多 和神明吵闹一宿还未开放的幸福就在你的左右月下美酒饮一口 敲锣打鼓都不够醉了睡了醒了再向前走所以说 不管下雨又刮风 过了春夏又秋冬只要相信我的爱就在整个宇宙泥巴路上迎着风 再把衣裳抖一抖笑过以后就能越挫越勇所以说 跟随在神的背后 敲碗拍桌甩衣袖还未开放的幸福就在每个角落月下美酒饮一口 脱下衣裳挂枝头醉了睡了醒了再向前走所以说 不论现在或今后 和神明吵闹傲游太多沮丧担忧都不必再保留不管下雨又刮风 泥巴路上花一朵笑过以后就能越挫越勇这世界早已埋下太多的希望藏在了重复的孤单又无趣的日常或许有一天谁微笑着抛向你手心或许在心里 在你身旁所以说 别再祈求太多 陪在我的身侧因为有我的爱温暖整个宇宙今天钻进被窝 明天光芒四射照亮每个人的心窝所以说 敲锣打鼓都不够 敲碗拍桌甩衣袖直到每一个人都爱整个地球不管春夏又秋冬 无忧无虑到最后笑着跳着 唱着歌一起走不知最近为什么总是不随心意坐下望着窗外只会讨厌自己无所不能的神明也时常烦闷闹心我知道 讲出来 也不会有人相信凿开石头缝隙只想一个人躲藏堵上洞口尽管独自哭泣一场这样狼狈的我怎能实现你的愿望猜不透 也不想去想但我 听说这是我最为珍贵的一个小特长多愁善感的我 为爱催生出千百万奇妙的情绪化作无穷的力量不知什么时候人们变得漠不关心功德盒子也只剩下几毛而已空空的钱袋怎么能收买神的欢心请一定 请一定 找一天一次付清雨天滴滴答答 穿过透光的屋顶无人使唤的我端坐雨中故作淡定眼看破落的这里就快要无人问津我依然 安心地等着你还有 因为你和我交换彼此深藏的小秘密约定 只要跌倒再站起就会赢得资格去获取改变一切的奇迹

显然这里面包含了我们需要的信息
处理的时候,我选择php和正则搞定吧,没啥技术含量,纯粹是为了博客不长草啊

header("Content-Type: text/html; charset=utf-8");
//BILI 歌词逆变器
$data=file_get_contents('ss3.txt');//包含歌词信息的弹幕源文件
$new_data=explode('</d>', $data);
var_dump($new_data);
$lrc_array=preg_replace('/<d p="(\d+\.?\d{0,2})\d+,.*?">(.*?)/is', '[$1]$2', $new_data);
//var_dump($lrc_array);

//秒转分钟lrc时间轴
function sec_to_lrc_time($seconds){
	$seconds=number_format($seconds, 2, '.', '');
	preg_match('/(\d+)(?:\.(\d+))?/', $seconds,$res);
	$int_sec=$res[1];
	$float_sec=empty($res[2])?0:$res[2];
	$min=(int)($int_sec/60);
	$sec=$int_sec%60;
	if($min<10)$min='0'.$min;
	if($sec<10)$sec='0'.$sec;
	return '['.$min.':'.$sec.'.'.$float_sec.']';
}

foreach ($lrc_array as $k=>$s){
	preg_match('/\[(.*?)\](.*)/is',$s,$lrc);
	if(empty($lrc[1])){
		$lrc[1]=0;//时间轴
		$lrc[2]='';//歌词
	}
	$lrc_array[$k]=sec_to_lrc_time($lrc[1]).$lrc[2];
}
//var_dump($lrc_array);
$array_temp=array();
foreach ($lrc_array as $k=>$s){
	$array_temp[]=$s."\r\n";
}
file_put_contents('biliinverter_lrc.txt', $array_temp);//输出到文件

然后得到的文件大概是

[01:08.74]所以说  别向我祈求太多 和神明吵闹一宿
[01:13.33]还未开放的幸福就在你的左右
[01:16.47]月下美酒饮一口 敲锣打鼓都不够
[01:20.68]醉了睡了醒了再向前走
[01:23.47]所以说 不管下雨又刮风 过了春夏又秋冬
[01:27.52]只要相信我的爱就在整个宇宙
[01:30.84]泥巴路上迎着风 再把衣裳抖一抖
[01:34.55]笑过以后就能越挫越勇
[02:24.85]所以说 跟随在神的背后 敲碗拍桌甩衣袖
[02:29.40]还未开放的幸福就在每个角落
[02:32.86]月下美酒饮一口 脱下衣裳挂枝头
[02:36.68]醉了睡了醒了再向前走
[02:39.79]所以说 不论现在或今后 和神明吵闹傲游
[02:43.66]太多沮丧担忧都不必再保留
[02:47.16]不管下雨又刮风 泥巴路上花一朵
[02:50.79]笑过以后就能越挫越勇
[02:53.83]这世界早已埋下太多的希望
[02:57.40]藏在了重复的孤单又无趣的日常
[03:01.14]或许有一天谁微笑着抛向你手心
[03:04.52]或许在心里 在你身旁
[03:11.47]所以说 别再祈求太多 陪在我的身侧
[03:15.68]因为有我的爱温暖整个宇宙
[03:19.11]今天钻进被窝 明天光芒四射
[03:22.85]照亮每个人的心窝
[03:25.96]所以说 敲锣打鼓都不够 敲碗拍桌甩衣袖
[03:29.96]直到每一个人都爱整个地球
[03:33.30]不管春夏又秋冬 无忧无虑到最后
[03:37.29]笑着跳着 唱着歌一起走
[00:23.01]不知最近为什么总是不随心意
[00:26.78]坐下望着窗外只会讨厌自己
[00:29.89]无所不能的神明也时常烦闷闹心
[00:33.60]我知道 讲出来 也不会有人相信
[00:37.02]凿开石头缝隙只想一个人躲藏
[00:41.17]堵上洞口尽管独自哭泣一场
[00:43.90]这样狼狈的我怎能实现你的愿望
[00:47.68]猜不透 也不想去想
[00:51.47]但我 听说这是我最为珍贵的一个
[00:56.33]小特长
[00:58.53]多愁善感的我 为爱催生出
[01:01.11]千百万奇妙的情绪
[01:03.61]化作无穷的力量
[01:39.33]不知什么时候人们变得漠不关心
[01:43.02]功德盒子也只剩下几毛而已
[01:46.39]空空的钱袋怎么能收买神的欢心
[01:49.79]请一定 请一定 找一天一次付清
[01:53.53]雨天滴滴答答 穿过透光的屋顶
[01:56.85]无人使唤的我端坐雨中故作淡定
[02:00.35]眼看破落的这里就快要无人问津
[02:04.10]我依然 安心地等着你
[02:07.23]还有 因为你和我交换彼此深藏的
[02:12.75]小秘密
[02:14.62]约定 只要跌倒再站起
[02:17.20]就会赢得资格去获取
[02:19.99]改变一切的奇迹

时间轴明显有点乱,是因为字幕菌顺序不一致吧
然后将其放入自制的歌词排序程序,这里我还是选用php,不要问我为什么,我只会php啊
程序,重排歌词顺序[全未删除debug版]

<?php
header("Content-Type: text/html; charset=utf-8");
//字幕多并列时间轴转单时间轴 PHP
$lang1_data=file_get_contents('biliinverter_lrc.txt');//语言1文本,需要带时间轴

$array1=list_lrc($lang1_data,0);
$array_temp=array();
foreach ($array1 as $k=>$s){
	$array_temp[]=$k.$s."\r\n";
	//$array[]=$s.$array_temp[$k]."\r\n";////多字幕行数合并
	
} 
var_dump($array1);

file_put_contents('biliinverter_lrc1.txt', $array_temp);//输出到文件

//遍历歌词
function list_lrc($data,$offset){
	$array=preg_split('/[\n|\r|\r\n]/',$data);
	$time_array=array();
	foreach ($array as $s){
		$lrc_time_data=fetch_lrc_time($s);
		$lrc_data=fetch_lrc($s);
		//var_dump($lrc_data);
		//var_dump($lrc_time_data);
		//var_dump(strlen($lrc_data));
		if(($lrc_data!='')&&($lrc_data)!=' '){
			if(is_array($lrc_time_data)){
				foreach ($lrc_time_data[0] as $k=>$j){
					//$time=	$lrc_time_data[1][$k]*60+$lrc_time_data[2][$k]+$offset;//这里可以加减补偿时间
					//var_dump($time);
					$time_array['time'][]=$j;
					$time_array['lrc'][]=$lrc_data;
				}
			}else{
				//$time_array['time'][]=0;
				//$time_array['lrc'][]=$lrc_data;
			}
			//fetch_lrc($s);
		}
	}
	//var_dump($lrc_time_data);
	//sort($time_array);
	//var_dump($time_array);
	$lrc_array=array();
	empty($time_array['time'])?die('<div class="container">无任何歌词信息,不是有效的LRC歌词文件</div>'):'';
	foreach ($time_array['time'] as $m=>$n){
		//var_dump($n);
		$n=strval($n);
		$lrc_array[$n]=$time_array['lrc'][$m];
	}
	//var_dump($lrc_array);
	ksort($lrc_array);
	return $lrc_array;
}

function fetch_lrc_time($str){
	preg_match_all('/(?:\[(\d+):(\d+\.\d+)\])/is', $str, $matches);
	//var_dump($matches);
	if(empty($matches[1])){
		return $str;
	}else{
		return $matches;
	}
}
function fetch_lrc($str){
	//preg_match('/(?:\[[\d+|:|\.]*\])*(.*?)/is', $str, $matches);
	preg_match('/(?:\[\d+:\d+(?:\.\d+)?\]\s?)*(.*)/is', $str, $matches);//尼玛,原来是部分不负责的lrc在多时间轴后面加了空白,才导致我的匹配系统挂了
	//var_dump($matches);
	if(empty($matches[1])){
		//return $str;
		return '';
	}else{
		return $matches[1];
	}
}

得到的biliinverter_lrc1.txt文件应该可以满足我们的需要了

[00:23.01]不知最近为什么总是不随心意
[00:26.78]坐下望着窗外只会讨厌自己
[00:29.89]无所不能的神明也时常烦闷闹心
[00:33.60]我知道 讲出来 也不会有人相信
[00:37.02]凿开石头缝隙只想一个人躲藏
[00:41.17]堵上洞口尽管独自哭泣一场
[00:43.90]这样狼狈的我怎能实现你的愿望
[00:47.68]猜不透 也不想去想
[00:51.47]但我 听说这是我最为珍贵的一个
[00:56.33]小特长
[00:58.53]多愁善感的我 为爱催生出
[01:01.11]千百万奇妙的情绪
[01:03.61]化作无穷的力量
[01:08.74]所以说  别向我祈求太多 和神明吵闹一宿
[01:13.33]还未开放的幸福就在你的左右
[01:16.47]月下美酒饮一口 敲锣打鼓都不够
[01:20.68]醉了睡了醒了再向前走
[01:23.47]所以说 不管下雨又刮风 过了春夏又秋冬
[01:27.52]只要相信我的爱就在整个宇宙
[01:30.84]泥巴路上迎着风 再把衣裳抖一抖
[01:34.55]笑过以后就能越挫越勇
[01:39.33]不知什么时候人们变得漠不关心
[01:43.02]功德盒子也只剩下几毛而已
[01:46.39]空空的钱袋怎么能收买神的欢心
[01:49.79]请一定 请一定 找一天一次付清
[01:53.53]雨天滴滴答答 穿过透光的屋顶
[01:56.85]无人使唤的我端坐雨中故作淡定
[02:00.35]眼看破落的这里就快要无人问津
[02:04.10]我依然 安心地等着你
[02:07.23]还有 因为你和我交换彼此深藏的
[02:12.75]小秘密
[02:14.62]约定 只要跌倒再站起
[02:17.20]就会赢得资格去获取
[02:19.99]改变一切的奇迹
[02:24.85]所以说 跟随在神的背后 敲碗拍桌甩衣袖
[02:29.40]还未开放的幸福就在每个角落
[02:32.86]月下美酒饮一口 脱下衣裳挂枝头
[02:36.68]醉了睡了醒了再向前走
[02:39.79]所以说 不论现在或今后 和神明吵闹傲游
[02:43.66]太多沮丧担忧都不必再保留
[02:47.16]不管下雨又刮风 泥巴路上花一朵
[02:50.79]笑过以后就能越挫越勇
[02:53.83]这世界早已埋下太多的希望
[02:57.40]藏在了重复的孤单又无趣的日常
[03:01.14]或许有一天谁微笑着抛向你手心
[03:04.52]或许在心里 在你身旁
[03:11.47]所以说 别再祈求太多 陪在我的身侧
[03:15.68]因为有我的爱温暖整个宇宙
[03:19.11]今天钻进被窝 明天光芒四射
[03:22.85]照亮每个人的心窝
[03:25.96]所以说 敲锣打鼓都不够 敲碗拍桌甩衣袖
[03:29.96]直到每一个人都爱整个地球
[03:33.30]不管春夏又秋冬 无忧无虑到最后
[03:37.29]笑着跳着 唱着歌一起走

66枚,如果放到我的弹幕发射器,阵列版共计6个ID,每个ID11枚弹幕,不知道会不会进小黑屋,还是不要作死了,
反正我给那视频加字幕也不会很火的啦

收工,新年第一次水(๑•̀ㅂ•́)و✧

标签:

Related Posts

8 Comments

  1. 文科

    拿去上传到网易云音乐去了 顺便拜小绯

    2015.01.6 at 14:15
    #1  
  2. 太牛

    2015.01.19 at 14:47
    #2  
    • 去听翻唱的歌,一听到萌妹子声音就会开启跟踪模式,这是病吗

      2015.01.19 at 19:50
      #21