Merge-Lrc 合并歌词的小工具
Merge-Lrc
背景
音乐区有群友希望各种乱七八糟的歌词(lrc 格式居多,里面甚至还有翻译)可以整理成单一的文件,或者一个仅翻译的歌词可以和原文的歌词合并。于是就开发了这款工具。地址:https://github.com/SofiaXu/lrc-merge
介绍
这是一个用于合并歌词的小工具,可以将多个歌词文件合并成一个歌词文件。
TL;DR
.\Merge-Lrc.ps1 -Path "C:\Users\user\Music\*.lrc" -MergeMethod "Merge" -SplitChar " " | Out-File "C:\Users\user\Music\merged.lrc"
参数说明
参数名 | 是否可选 | 默认值 | 说明 |
---|---|---|---|
Path | 否 | 无 | 歌词文件路径,支持通配符。 |
MergeMethod | 是 | Merge | 合并方法。Merge 为合并所有时间相同的行,Intersect 为合并所有时间相同的行并将时间不同的行均分,Union 为合并所有时间相同的行并将时间不同的行合并。 |
SplitChar | 是 | 空格 | 分隔符。 |
MaxInterval | 是 | 10 | Intersect 方法的最大间隔。如果两句歌词超过这个间隔将使用 Offset 中定义的长度来确定下一句歌词的时间。 |
Offset | 是 | 1000 | Intersect 方法的 Offset。最后一句歌词默认使用这个值。如果两句歌词超过这个间隔将使用 Offset 中定义的长度来确定下一句歌词的时间。 |
示例
- 将文件夹中的所有歌词文件合并成一个歌词文件
.\Merge-Lrc.ps1 -Path "C:\Users\user\Music\*.lrc" -MergeMethod "Merge" -SplitChar " "
- 将文件夹中的所有歌词文件合并成一个歌词文件并保存
.\Merge-Lrc.ps1 -Path "C:\Users\user\Music\*.lrc" -MergeMethod "Merge" -SplitChar " " | Out-File "C:\Users\user\Music\merged.lrc"
- 将一个混乱的歌词文件整理合并并保存
.\Merge-Lrc.ps1 -Path "C:\Users\user\Music\test.lrc" -MergeMethod "Intersect" -SplitChar " " | Out-File "C:\Users\user\Music\test.lrc"
- 将一个文件夹下所有的混乱的歌词文件整理合并并保存
dir *.lrc | % { $file = $_; $out = .\Merge-Lrc.ps1 -Path $file.FullName -MergeMethod "Intersect";$out > $file.FullName }
合并方法结果
- 输入文件
[00:10.00][00:00.00][00:01.00]This is the original text.
[00:05.00]This is the next text.
[00:05.00]这是第二句。
[00:10.00][00:00.00][00:01.00]这是中文翻译。
- Merge
[00:00.00]This is the original text. 这是中文翻译。
[00:01.00]This is the original text. 这是中文翻译。
[00:05.00]This is the next text. 这是第二句。
[00:10.00]This is the original text. 这是中文翻译。
- Intersect
[00:00.00]This is the original text.
[00:00.50]这是中文翻译。
[00:01.00]This is the original text.
[00:03.00]这是中文翻译。
[00:05.00]This is the next text.
[00:07.50]这是第二句。
[00:10.00]This is the original text.
[00:11.00]这是中文翻译。
- Union
[00:00.00]This is the original text.
[00:00.00]这是中文翻译。
[00:01.00]This is the original text.
[00:01.00]这是中文翻译。
[00:05.00]This is the next text.
[00:05.00]这是第二句。
[00:10.00]This is the original text.
[00:10.00]这是中文翻译。
Merge-Lrc 合并歌词的小工具的更多相关文章
- python开发目录合并小工具 PathMerge
前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...
- 2014年Windows平台软件推荐:神器小工具(骨灰级
原文 http://www.wtoutiao.com/a/120621.html 底层工具 “If you know how to use Process Monitor competently, ...
- Windows平台软件推荐:神器小工具(骨灰级)
底层工具 "If you know how to use Process Monitor competently, people of both sexes will immediately ...
- 自制小工具大大加速MySQL SQL语句优化(附源码)
引言 优化SQL,是DBA常见的工作之一.如何高效.快速地优化一条语句,是每个DBA经常要面对的一个问题.在日常的优化工作中,我发现有很多操作是在优化过程中必不可少的步骤.然而这些步骤重复性的执行,又 ...
- 用C#Winform写个简单的批量清空文件内容和删除文件的小工具
用C#Winform写个简单的批量清空文件内容和删除文件的小工具 本文介绍这个简单得不能再简单的小项目.做这个项目,有以下目的. 1 当然是做个能用的工具 2 学习使用Github 关于用VS2013 ...
- Windows下好用到必须开机自启的小工具
折腾过linux,黑苹果,最后还是回到了盖茨大叔的windows.得出的结论是,日常使用的话,折腾Linux还不如把精力去拿去折腾windows.分享下折腾的成果,介绍下一些很不错的小工具. ...
- linux相关小工具的使用(一)————代码相关工具
在linux环境下,对于程序员来说,知道使用一些好用的小工具,对源代码的阅读.编译和调试都有着事半功倍的效果,这里我也是边学边写的原则,把自己知道的一丁点小知识分享给大家. 一. 源代码的阅读 首先 ...
- Git -- 分支与合并 (命令行+可视化工具p4merge)
基本命令 把所有的变化都放在master分支并不是最好的做法. 建议的做法是把变化放在分支里面. 至少应该准备一个feature分支之类的, 把变化都隔离开来, 然后等到所有的功能都稳定之后再合并到m ...
- 如何通过C#开发调用Skyline软件中提供的小工具
熟悉Skyline的朋友会知道,在TerraBuilder和TerraExplorer Pro软件的安装目录里,提供了很多个小工具(exe程序): 虽然我们看不到这些小工具的源代码,但我们还是可以在自 ...
- 【转载】C#的Merge方法合并两个DataTable对象的数据
在C#中的Datatable类中,可以使用DataTable类的Merge方法对两个相同结构的DataTable对象进行求并集运算,将两个DataTable对象的数据行合并到其中一个DataTable ...
随机推荐
- 1. SpringMVC 简介
1. 什么是 MVC MVC是一种软件架构的思想,将软件按照模型.视图.控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实 ...
- java调用WebService(未完成)记录篇
背景: 因工作需要和一个Sap相关系统以WebService的方式进行接口联调,之前仅听过这种技术,但并没有实操过,所以将本次开发相关的踩坑进行记录 通过一个实例来认识webservice 服务端 首 ...
- Linux系统运维之Hadoop、Hive、Flume数据处理
配置环境 主机名 IP 备注 Hadoop-Data01 192.168.0.194 Hadoop-Master/Hive/Mysql/Flume-Agent Hadoop-Data02 192.16 ...
- kafka入门必备知识
1. Kafka是一个分布式流处理平台: 可以让你发布和订阅流式的记录.这一方面与消息队列或者企业消息系统类似. 可以储存流式的记录,并且有较好的容错性. 可以在流式记录产生时就进行处理. 2. 消息 ...
- HCL实验:4.同一vlan位于不同交换机上的通信
拓扑图 SW1配置 SW2配置 SW3配置 VLAN 1 PC1 PING PC5 VLAN 2 PC 2 PING PC 6 VLAN 3 PC4 PING PC8 怀疑是模拟器的问题---- 不知 ...
- Button按钮:得到鼠标焦点后自动放大,失去鼠标焦点后自动缩小_
作用 程序设计过程中,我们经常需要增加一些动态效果,以此改善用户的使用体验.本文将介绍一种方法,动态显示按钮状态,使其得到鼠标焦点后自动放大,失去鼠标焦点后自动缩小. 效果图 先放一张原图(鼠标还未移 ...
- PHP echo 和 print 语句
在 PHP 中,有两种基本的输出方法:echo 和 print. PHP echo 和 print 语句 echo 和 print 之间的差异: echo - 能够输出一个以上的字符串 print - ...
- LeetCode 周赛上分之旅 #35 两题坐牢,菜鸡现出原形
️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 [BaguTree Pro] 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思 ...
- Java日志系列:日志门面JCL、SLF4J
目录 一.日志门面说明 二.JCL 使用 JCL 入门 JCL 原理 三.SLF4J 使用 配合自身简单日志实现(slf4j-simple) 配置logback日志实现 配置Log4J日志实现(需适配 ...
- 实现在Qt窗口中嵌套SDL
实现在Qt窗口中嵌套SDL 在现代软件开发中,多媒体处理和交互性成为应用程序不可或缺的一部分.Qt作为一个强大的GUI框架,为开发者提供了丰富的图形.界面和事件处理工具.然而,有时候,我们可能需要更多 ...