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 ...
随机推荐
- 数据库中的可视化和探索性:MongoDB的数据可视化和探索性工具
目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成 ...
- ArrayList 扩容机制
ArrayList 基本介绍 ArrayList实现了List接口.它可以存储包括null的任何类型的对象,允许重复元素.ArrayList在内部使用一个数组来存储元素,当元素数量超过数组容量时,Ar ...
- python学习--解析网页
# -*- coding: utf-8 -*-"""Created on Thu Oct 17 14:04:21 2019 @author: DELL"&quo ...
- windows ce 5.0 + vs2005 + sql数据库_开发注意事项
今天通过对RFID读写器(windows ce 5.0)的摸索以及实验总结出一下注意事项: 安装 vs2005 后要配置windows ce 的开发环境,从网上下载对应设备版本的SDK,安装后新建项目 ...
- http请求其他接口的utils
首先在pom中加入 关于http需要的jar包 <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcor ...
- 【技术积累】JavaScript中的基础语法【二】
JavaScript编写方式 JavaScript是一种脚本语言,用于为网页添加交互性和动态功能.它可以直接嵌入到HTML中,并通过浏览器解释执行.下面是一些常见的JavaScript编写方式和相应的 ...
- linux内核编译基础知识储备 --- 过渡篇(四)
文章目录 一. 一种makefile中定义函数的方式 二. makefile之if函数 三. MAKE变量 四. $(quiet) 4.1 quiet = 空 与 quiet=quiet_ 的区别 4 ...
- OSS的使用(谷粒商城58-64)
OSS的使用(谷粒商城58-64) 购买之类的就不在这里详述了,阿里云文档几乎都写了 创建bucket 学习阶段,相对独特的点在于我们需要选择公共读 项目开发阶段,不能选择公共读了,要尽量选择私有(代 ...
- Java 调用gdal API(二)——栅格裁剪
gdal可以说是GIS数据处理比较好的工具之一,虽然也提供了Java API,但是官方文档确实太过简单,用起来确实太难受,每次都需要去参考对应的C++api,然后在对应使用. 因此小编决定从这篇文章开 ...
- 2021-7-11 Vue的自定义指令简单实例
获取焦点简单实例,用Vue.directive(ps:指令)定义,命名不要是关键字,用v-加自定义指令名称调用,而内部用钩子函数inserted来实现 <!DOCTYPE html> &l ...