GithubHelp home page GithubHelp logo

steve-xmh / amll-ttml-tool Goto Github PK

View Code? Open in Web Editor NEW
77.0 1.0 5.0 290.29 MB

A brand-new syllable lyric editor for Apple Music-like lyrics! 一个全新的逐词歌词编辑器!针对 Apple Music-like Lyrics 设计!

Home Page: https://steve-xmh.github.io/amll-ttml-tool/

License: GNU General Public License v3.0

HTML 0.71% Rust 0.11% TypeScript 40.30% Vue 54.09% JavaScript 4.79%
apple-music lrc lrc-maker lyric lyric-editor ttml syllable-lyric

amll-ttml-tool's Introduction

English

Greeting! I'm SteveXMH (aka Steve plus each first letter of my real name pinyin) or you can call me Steve Xiao as Xiao is my first name.

I'm a ordinary guy who likes programing and painting (Still learning), and my ideal dream is to be a independent game developer or just a programmer!

My favorite language is Rust language. But now I'm learning how to use Godot engine for my very first low-poly/voxel RPG game!

Also I'm good at lots of full stack stuffs. Such as backends (GO, Rust, NodeJS, Python) and frontends (JavaScript, TypeScript, HTML, CSS), also I'm currently remaking Scratch Player in Rust!

Very like Minecraft and Teardown, some vehicle driving things are also my favorite (Such as TrainZ12 or OMSI2)

So have a look around! I hope you can enjoy my works and also, give me a star!

My social links

Chinese (简体中文)

你好!我是 SteveXMH (Steve Xiao 或者 史蒂夫·萧),这个名字的 XMH 是我的真名拼音首字母大写。

作为一个苣蒻程序猿 + 画画练习生,本人梦想成为一位独立游戏开发者或者是纯纯的程序员。

现在我非常热衷使用 Rust 语言。但是现在我正在学习使用 Godot 游戏引擎来做我的第一个体素/低模 RPG 游戏,敬请期待吧!

在那之前,我常混迹全栈技术栈(多是 Web 开发),后端有 Go, Rust, NodeJS, Python,前端有 JavaScript, TypeScript, HTML, CSS。目前我还有一个使用 Rust 重写 Scratch 播放器的项目哦!

摸过的语言不光有上面的,还有 Lua(包括 Roblox 的 Luau),易语言,C#,等等!

非常喜欢玩 Minecraft 和 Teardown,还有一些驾驶(模拟)类游戏我也很喜欢(TrainZ12 或者 OMSI2)。

那么请随意逛逛吧!希望你能喜欢我写的程序,不要忘记留下星星哦!

我的社交链接

Languages and Tools 我用过的编程语言和工具

android babel css3 docker electron express figma git godot html5 javascript jenkins kotlin linux mariadb materialui mongodb mysql nodejs react redis redux rust sqlite svelte typescript vuejs vuetify webpack

amll-ttml-tool's People

Contributors

miaoyww avatar steve-xmh avatar tsavpyn avatar wxriw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

amll-ttml-tool's Issues

希望增加AMLL TTML数据库已有歌词的检索功能

希望能增加已有歌曲歌词的检索功能,避免出现重复提交歌词,同时便于歌词制作者查阅

另:可否AMLL在调用AMLL TTML DB的歌词时,在适当的位置(例如歌词末尾等等)显示该TTML歌词的制作者或其他信息
给予歌词作者一些成就感的同时能够更好发挥积极性,同时也让AMLL的使用者了解并参与进来,共建歌词库

ass 字幕导出

希望可以导出 ass 格式的字幕文件,方便音乐视频相关特效字幕制作。

关于从Apple Music获取歌词

您好!
我看计划中写道“从 Apple Music 中获取 Apple Syllable 逐词歌词”,想请教一下是如何实现的。
请问您的方法是基于Apple官方的歌词api吗?还是用了一些更加复杂的方式呢?
感谢您的时间!

从 Apple Music 中获取 Apple Syllable 逐词歌词

Apple Music拥有丰富的TTML歌词库,专业性和准确性都极高
目前获取Apple Music中TTML歌词较方便的途径是通过Apple Music网页版使用的api接口获取
https://amp-api.music.apple.com/v1/catalog/cn/songs/歌曲id/syllable-lyrics

使用GET请求,带上headers即可获取到含有TTML歌词的JSON数据
headers示例(数据已脱敏)

    'Host': 'amp-api.music.apple.com',
    'Connection': 'keep-alive',
    'sec-ch-ua': '',
    'DNT': '1',
    'Media-User-Token': 'Media-User-Token',
    'sec-ch-ua-mobile': '',
    'Authorization': 'Authorization',
    'User-Agent': '',
    'sec-ch-ua-platform': '',
    'Accept': '*/*',
    'Origin': 'https://music.apple.com',
    'Sec-Fetch-Site': 'same-site',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Dest': 'empty',
    'Referer': 'https://music.apple.com/',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6'

返回值

{
    "data": [
        {
            "id": "1587649590",
            "type": "syllable-lyrics",
            "attributes": {
                "ttml": "TTML歌词信息",
                "playParams": {
                    "id": "AP_1587649590",
                    "kind": "lyric",
                    "catalogId": "1587649590",
                    "displayType": 3
                }
            }
        }
    ]
}

使用Python写了个小程序,实测可以正常获取到TTML歌词。
但是目前存在的问题是Apple Music音乐库里的歌曲id未知,不像网易云那样直接写在url里,新歌曲需要抓包获取id

从Apple Music网页版直接抓取的ttml歌词读取问题

我尝试从Apple Music直接抓取歌词
得到如下ttml歌词(以《孤勇者》为例,删除掉了metadata中的itunes歌手信息)

<tt xmlns="http://www.w3.org/ns/ttml"
    xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
    xmlns:itunes="http://music.apple.com/lyric-ttml-internal">
    <head>
        <metadata>
            <ttm:agent type="person" xml:id="v1"/>
        </metadata>
    </head>
    <body dur="4:16.000">
        <div begin="22.402" end="49.679">
            <p begin="22.402" end="26.962" itunes:key="L1" ttm:agent="v1">
                <span begin="22.402" end="23.331">都</span>
                <span begin="25.274" end="25.619">是</span>
                <span begin="25.619" end="26.056">勇敢</span>
                <span begin="26.056" end="26.962">的</span>
            </p>
            <p begin="28.630" end="34.621" itunes:key="L2" ttm:agent="v1">
                <span begin="28.630" end="28.850">你</span>
                <span begin="28.850" end="29.318">額頭</span>
                <span begin="29.318" end="29.516">的</span>
                <span begin="29.516" end="29.796">傷</span>
                <span begin="29.796" end="30.376">口</span>
                <span begin="30.551" end="30.764">你</span>
                <span begin="30.764" end="31.285">的</span>
                <span begin="31.437" end="31.629">不</span>
                <span begin="31.629" end="32.103">同</span>
                <span begin="32.350" end="32.526">你</span>
                <span begin="32.526" end="33.050">犯</span>
                <span begin="33.050" end="33.394">的</span>
                <span begin="33.394" end="34.621">錯</span>
            </p>
            <p begin="37.151" end="42.187" itunes:key="L3" ttm:agent="v1">
                <span begin="37.151" end="38.688">都</span>
                <span begin="40.144" end="40.641">不必</span>
                <span begin="40.641" end="40.858">隱</span>
                <span begin="40.858" end="42.187">藏</span>
            </p>
            <p begin="43.417" end="49.679" itunes:key="L4" ttm:agent="v1">
                <span begin="43.417" end="44.049">你破舊</span>
                <span begin="44.049" end="44.310">的</span>
                <span begin="44.310" end="44.588">玩</span>
                <span begin="44.588" end="45.309">偶</span>
                <span begin="45.309" end="45.495">你</span>
                <span begin="45.495" end="46.097">的</span>
                <span begin="46.097" end="46.911">面具</span>
                <span begin="47.099" end="47.343">你</span>
                <span begin="47.343" end="47.820">的</span>
                <span begin="47.820" end="48.189">自</span>
                <span begin="48.189" end="49.679">我</span>
            </p>
        </div>
        <div begin="51.843" end="1:19.041">
            <p begin="51.843" end="56.767" itunes:key="L5" ttm:agent="v1">
                <span begin="51.843" end="52.201">他</span>
                <span begin="52.201" end="52.383">們</span>
                <span begin="52.383" end="53.118">說</span>
                <span begin="53.118" end="53.320">要</span>
                <span begin="53.320" end="53.522">帶</span>
                <span begin="53.522" end="53.753">著</span>
                <span begin="53.753" end="54.166">光</span>
                <span begin="54.167" end="54.694">馴服</span>
                <span begin="54.694" end="55.354">每一頭</span>
                <span begin="55.354" end="55.793">怪</span>
                <span begin="55.793" end="56.767">獸</span>
            </p>
            <p begin="58.901" end="1:04.702" itunes:key="L6" ttm:agent="v1">
                <span begin="58.901" end="59.279">他們</span>
                <span begin="59.279" end="59.971">說</span>
                <span begin="59.971" end="1:00.268">要</span>
                <span begin="1:00.268" end="1:00.706">縫好</span>
                <span begin="1:00.706" end="1:01.115">你的</span>
                <span begin="1:01.115" end="1:01.912">傷</span>
                <span begin="1:01.921" end="1:02.627">沒有人</span>
                <span begin="1:02.627" end="1:03.109">愛</span>
                <span begin="1:03.109" end="1:03.698">小</span>
                <span begin="1:03.698" end="1:04.702">丑</span>
            </p>
            <p begin="1:06.028" end="1:09.149" itunes:key="L7" ttm:agent="v1">
                <span begin="1:06.028" end="1:06.248">為</span>
                <span begin="1:06.248" end="1:06.525">何</span>
                <span begin="1:06.525" end="1:06.721">孤</span>
                <span begin="1:06.721" end="1:07.213">獨</span>
                <span begin="1:07.461" end="1:07.665">不</span>
                <span begin="1:07.665" end="1:08.127">可</span>
                <span begin="1:08.338" end="1:08.623">光</span>
                <span begin="1:08.623" end="1:09.149">榮</span>
            </p>
            <p begin="1:09.275" end="1:12.733" itunes:key="L8" ttm:agent="v1">
                <span begin="1:09.275" end="1:09.468">人</span>
                <span begin="1:09.468" end="1:09.893">只有</span>
                <span begin="1:09.893" end="1:10.368">不完</span>
                <span begin="1:10.368" end="1:10.961">美</span>
                <span begin="1:11.001" end="1:11.311">值</span>
                <span begin="1:11.311" end="1:11.758">得</span>
                <span begin="1:11.976" end="1:12.192">歌</span>
                <span begin="1:12.192" end="1:12.733">頌</span>
            </p>
            <p begin="1:13.457" end="1:19.041" itunes:key="L9" ttm:agent="v1">
                <span begin="1:13.457" end="1:13.814">誰</span>
                <span begin="1:13.814" end="1:14.107">說</span>
                <span begin="1:14.107" end="1:15.037">污泥</span>
                <span begin="1:15.037" end="1:15.320">滿</span>
                <span begin="1:15.320" end="1:15.875">身</span>
                <span begin="1:15.875" end="1:16.561">的</span>
                <span begin="1:16.561" end="1:16.835">不</span>
                <span begin="1:16.835" end="1:17.258">算</span>
                <span begin="1:17.258" end="1:17.676">英</span>
                <span begin="1:17.676" end="1:19.041">雄</span>
            </p>
        </div>
        <div begin="1:20.956" end="1:28.259">
            <p begin="1:20.956" end="1:22.765" itunes:key="L10" ttm:agent="v1">
                <span begin="1:20.956" end="1:21.223">愛</span>
                <span begin="1:21.223" end="1:21.458">你</span>
                <span begin="1:21.458" end="1:21.696">孤</span>
                <span begin="1:21.696" end="1:21.976">身</span>
                <span begin="1:21.976" end="1:22.347">走暗</span>
                <span begin="1:22.347" end="1:22.765">巷</span>
            </p>
            <p begin="1:22.843" end="1:24.674" itunes:key="L11" ttm:agent="v1">
                <span begin="1:22.843" end="1:23.096">愛</span>
                <span begin="1:23.096" end="1:23.333">你</span>
                <span begin="1:23.333" end="1:23.545">不</span>
                <span begin="1:23.545" end="1:23.745">跪</span>
                <span begin="1:23.745" end="1:23.962">的</span>
                <span begin="1:23.962" end="1:24.267">模</span>
                <span begin="1:24.267" end="1:24.674">樣</span>
            </p>
            <p begin="1:24.682" end="1:26.464" itunes:key="L12" ttm:agent="v1">
                <span begin="1:24.682" end="1:24.882">愛</span>
                <span begin="1:24.882" end="1:25.119">你</span>
                <span begin="1:25.119" end="1:25.573">對峙</span>
                <span begin="1:25.573" end="1:25.870">過</span>
                <span begin="1:25.870" end="1:26.075">絕</span>
                <span begin="1:26.075" end="1:26.464">望</span>
            </p>
            <p begin="1:26.474" end="1:28.259" itunes:key="L13" ttm:agent="v1">
                <span begin="1:26.474" end="1:27.051">不肯</span>
                <span begin="1:27.051" end="1:27.490">哭</span>
                <span begin="1:27.490" end="1:27.827">一</span>
                <span begin="1:27.827" end="1:28.259">場</span>
            </p>
        </div>
        <div begin="1:28.385" end="1:35.715">
            <p begin="1:28.385" end="1:30.148" itunes:key="L14" ttm:agent="v1">
                <span begin="1:28.385" end="1:28.607">愛</span>
                <span begin="1:28.607" end="1:28.845">你</span>
                <span begin="1:28.845" end="1:29.059">破</span>
                <span begin="1:29.059" end="1:29.291">爛</span>
                <span begin="1:29.291" end="1:29.410">的</span>
                <span begin="1:29.410" end="1:29.679">衣</span>
                <span begin="1:29.679" end="1:30.148">裳</span>
            </p>
            <p begin="1:30.217" end="1:31.982" itunes:key="L15" ttm:agent="v1">
                <span begin="1:30.217" end="1:30.384">卻</span>
                <span begin="1:30.384" end="1:30.670">敢</span>
                <span begin="1:30.670" end="1:30.952">堵</span>
                <span begin="1:30.952" end="1:31.303">命運</span>
                <span begin="1:31.303" end="1:31.526">的</span>
                <span begin="1:31.526" end="1:31.982">槍</span>
            </p>
            <p begin="1:32.048" end="1:33.846" itunes:key="L16" ttm:agent="v1">
                <span begin="1:32.048" end="1:32.261">愛</span>
                <span begin="1:32.261" end="1:32.542">你</span>
                <span begin="1:32.542" end="1:32.777">和</span>
                <span begin="1:32.777" end="1:32.999">我</span>
                <span begin="1:32.999" end="1:33.425">那麼</span>
                <span begin="1:33.425" end="1:33.846">像</span>
            </p>
            <p begin="1:33.860" end="1:35.715" itunes:key="L17" ttm:agent="v1">
                <span begin="1:33.860" end="1:34.404">缺口</span>
                <span begin="1:34.404" end="1:34.901">都</span>
                <span begin="1:34.901" end="1:35.290">一</span>
                <span begin="1:35.290" end="1:35.715">樣</span>
            </p>
        </div>
        <div begin="1:35.759" end="1:55.738">
            <p begin="1:35.759" end="1:39.398" itunes:key="L18" ttm:agent="v1">
                <span begin="1:35.759" end="1:36.218">去</span>
                <span begin="1:36.218" end="1:36.848">嗎</span>
                <span begin="1:36.848" end="1:37.168">配</span>
                <span begin="1:37.168" end="1:37.689">嗎</span>
                <span begin="1:37.862" end="1:38.074">這</span>
                <span begin="1:38.074" end="1:38.549">襤褸</span>
                <span begin="1:38.549" end="1:38.764">的</span>
                <span begin="1:38.764" end="1:38.966">披</span>
                <span begin="1:38.966" end="1:39.398">風</span>
            </p>
            <p begin="1:39.405" end="1:43.084" itunes:key="L19" ttm:agent="v1">
                <span begin="1:39.405" end="1:39.891">戰</span>
                <span begin="1:39.891" end="1:40.500">嗎</span>
                <span begin="1:40.600" end="1:40.890">戰</span>
                <span begin="1:40.890" end="1:41.383">啊</span>
                <span begin="1:41.591" end="1:41.776">以</span>
                <span begin="1:41.776" end="1:42.433">最卑微</span>
                <span begin="1:42.433" end="1:42.637">的</span>
                <span begin="1:42.637" end="1:43.084">夢</span>
            </p>
            <p begin="1:43.107" end="1:48.948" itunes:key="L20" ttm:agent="v1">
                <span begin="1:43.107" end="1:43.626">致那</span>
                <span begin="1:43.626" end="1:44.012">黑</span>
                <span begin="1:44.012" end="1:44.494">夜</span>
                <span begin="1:44.494" end="1:45.068">中</span>
                <span begin="1:45.068" end="1:45.257">的</span>
                <span begin="1:45.257" end="1:45.930">嗚</span>
                <span begin="1:45.930" end="1:46.320">咽</span>
                <span begin="1:46.320" end="1:46.894">與</span>
                <span begin="1:46.894" end="1:47.133">怒</span>
                <span begin="1:47.133" end="1:48.948">吼</span>
            </p>
            <p begin="1:50.410" end="1:55.738" itunes:key="L21" ttm:agent="v1">
                <span begin="1:50.410" end="1:50.953">誰說</span>
                <span begin="1:50.953" end="1:51.453">站</span>
                <span begin="1:51.453" end="1:51.822">在</span>
                <span begin="1:51.822" end="1:52.381">光</span>
                <span begin="1:52.381" end="1:52.637">裡</span>
                <span begin="1:52.637" end="1:53.277">的</span>
                <span begin="1:53.277" end="1:54.180">才算</span>
                <span begin="1:54.180" end="1:54.483">英</span>
                <span begin="1:54.483" end="1:55.738">雄</span>
            </p>
        </div>
        <div begin="2:08.930" end="2:38.459">
            <p begin="2:08.930" end="2:14.322" itunes:key="L22" ttm:agent="v1">
                <span begin="2:08.930" end="2:09.176">他</span>
                <span begin="2:09.176" end="2:09.361">們</span>
                <span begin="2:09.361" end="2:10.104">說</span>
                <span begin="2:10.104" end="2:10.386">要</span>
                <span begin="2:10.386" end="2:10.888">戒了</span>
                <span begin="2:10.888" end="2:11.259">你的</span>
                <span begin="2:11.259" end="2:11.729">狂</span>
                <span begin="2:11.729" end="2:12.190">就像</span>
                <span begin="2:12.190" end="2:12.709">擦掉</span>
                <span begin="2:12.709" end="2:13.002">了</span>
                <span begin="2:13.002" end="2:13.424">污</span>
                <span begin="2:13.424" end="2:14.322">垢</span>
            </p>
            <p begin="2:16.332" end="2:21.909" itunes:key="L23" ttm:agent="v1">
                <span begin="2:16.332" end="2:16.623">他</span>
                <span begin="2:16.623" end="2:16.758">們</span>
                <span begin="2:16.758" end="2:17.425">說</span>
                <span begin="2:17.541" end="2:17.725">要</span>
                <span begin="2:17.725" end="2:18.466">順臺階</span>
                <span begin="2:18.466" end="2:18.638">而</span>
                <span begin="2:18.638" end="2:19.297">上</span>
                <span begin="2:19.420" end="2:19.661">而</span>
                <span begin="2:19.661" end="2:20.050">代價</span>
                <span begin="2:20.050" end="2:20.331">是</span>
                <span begin="2:20.331" end="2:20.708">低</span>
                <span begin="2:20.708" end="2:21.909">頭</span>
            </p>
            <p begin="2:23.562" end="2:26.650" itunes:key="L24" ttm:agent="v1">
                <span begin="2:23.562" end="2:23.749">那</span>
                <span begin="2:23.749" end="2:23.997">就</span>
                <span begin="2:23.997" end="2:24.216">讓</span>
                <span begin="2:24.216" end="2:24.743">我</span>
                <span begin="2:24.914" end="2:25.097">不</span>
                <span begin="2:25.097" end="2:25.504">可</span>
                <span begin="2:25.805" end="2:26.032">乘</span>
                <span begin="2:26.032" end="2:26.650">風</span>
            </p>
            <p begin="2:26.758" end="2:30.446" itunes:key="L25" ttm:agent="v1">
                <span begin="2:26.758" end="2:27.047">你</span>
                <span begin="2:27.047" end="2:27.397">一樣</span>
                <span begin="2:27.397" end="2:27.650">驕</span>
                <span begin="2:27.650" end="2:27.888">傲</span>
                <span begin="2:27.888" end="2:28.448">著</span>
                <span begin="2:28.624" end="2:28.857">那</span>
                <span begin="2:28.857" end="2:29.484">種</span>
                <span begin="2:29.484" end="2:29.730">孤</span>
                <span begin="2:29.730" end="2:30.446">勇</span>
            </p>
            <p begin="2:31.055" end="2:38.459" itunes:key="L26" ttm:agent="v1">
                <span begin="2:31.055" end="2:31.297">誰</span>
                <span begin="2:31.297" end="2:31.599">說</span>
                <span begin="2:31.599" end="2:32.504">對弈</span>
                <span begin="2:32.504" end="2:33.435">平凡</span>
                <span begin="2:33.435" end="2:33.975">的</span>
                <span begin="2:34.129" end="2:34.319">不</span>
                <span begin="2:34.319" end="2:34.732">算</span>
                <span begin="2:34.732" end="2:35.224">英</span>
                <span begin="2:35.224" end="2:38.459">雄</span>
            </p>
        </div>
        <div begin="2:38.501" end="2:45.775">
            <p begin="2:38.501" end="2:40.349" itunes:key="L27" ttm:agent="v1">
                <span begin="2:38.501" end="2:38.762">愛</span>
                <span begin="2:38.762" end="2:39.047">你</span>
                <span begin="2:39.047" end="2:39.273">孤</span>
                <span begin="2:39.273" end="2:39.486">身</span>
                <span begin="2:39.486" end="2:39.986">走暗</span>
                <span begin="2:39.986" end="2:40.349">巷</span>
            </p>
            <p begin="2:40.327" end="2:42.183" itunes:key="L28" ttm:agent="v1">
                <span begin="2:40.327" end="2:40.557">愛</span>
                <span begin="2:40.557" end="2:40.781">你</span>
                <span begin="2:40.781" end="2:41.030">不</span>
                <span begin="2:41.030" end="2:41.293">跪</span>
                <span begin="2:41.293" end="2:41.538">的</span>
                <span begin="2:41.538" end="2:41.717">模</span>
                <span begin="2:41.717" end="2:42.183">樣</span>
            </p>
            <p begin="2:42.254" end="2:44.035" itunes:key="L29" ttm:agent="v1">
                <span begin="2:42.254" end="2:42.452">愛</span>
                <span begin="2:42.452" end="2:42.683">你</span>
                <span begin="2:42.683" end="2:43.101">對峙</span>
                <span begin="2:43.101" end="2:43.389">過</span>
                <span begin="2:43.389" end="2:43.659">絕</span>
                <span begin="2:43.659" end="2:44.035">望</span>
            </p>
            <p begin="2:44.038" end="2:45.775" itunes:key="L30" ttm:agent="v1">
                <span begin="2:44.038" end="2:44.536">不肯</span>
                <span begin="2:44.536" end="2:45.042">哭</span>
                <span begin="2:45.042" end="2:45.370">一</span>
                <span begin="2:45.370" end="2:45.775">場</span>
            </p>
        </div>
        <div begin="2:46.010" end="2:53.243">
            <p begin="2:46.010" end="2:47.701" itunes:key="L31" ttm:agent="v1">
                <span begin="2:46.010" end="2:46.181">愛</span>
                <span begin="2:46.181" end="2:46.373">你</span>
                <span begin="2:46.373" end="2:46.563">破</span>
                <span begin="2:46.563" end="2:46.900">爛</span>
                <span begin="2:46.900" end="2:47.070">的</span>
                <span begin="2:47.070" end="2:47.254">衣</span>
                <span begin="2:47.254" end="2:47.701">裳</span>
            </p>
            <p begin="2:47.740" end="2:49.581" itunes:key="L32" ttm:agent="v1">
                <span begin="2:47.740" end="2:48.051">卻</span>
                <span begin="2:48.051" end="2:48.273">敢</span>
                <span begin="2:48.273" end="2:48.487">堵</span>
                <span begin="2:48.487" end="2:48.901">命運</span>
                <span begin="2:48.901" end="2:49.115">的</span>
                <span begin="2:49.115" end="2:49.581">槍</span>
            </p>
            <p begin="2:49.593" end="2:51.353" itunes:key="L33" ttm:agent="v1">
                <span begin="2:49.593" end="2:49.845">愛</span>
                <span begin="2:49.845" end="2:50.043">你</span>
                <span begin="2:50.043" end="2:50.290">和</span>
                <span begin="2:50.290" end="2:50.503">我</span>
                <span begin="2:50.503" end="2:50.895">那麼</span>
                <span begin="2:50.895" end="2:51.353">像</span>
            </p>
            <p begin="2:51.420" end="2:53.243" itunes:key="L34" ttm:agent="v1">
                <span begin="2:51.420" end="2:51.894">缺口</span>
                <span begin="2:51.894" end="2:52.378">都</span>
                <span begin="2:52.378" end="2:52.833">一</span>
                <span begin="2:52.833" end="2:53.243">樣</span>
            </p>
        </div>
        <div begin="2:53.284" end="3:13.507">
            <p begin="2:53.284" end="2:56.936" itunes:key="L35" ttm:agent="v1">
                <span begin="2:53.284" end="2:53.708">去</span>
                <span begin="2:53.708" end="2:54.333">嗎</span>
                <span begin="2:54.429" end="2:54.763">配</span>
                <span begin="2:54.763" end="2:55.222">嗎</span>
                <span begin="2:55.398" end="2:55.616">這</span>
                <span begin="2:55.616" end="2:56.090">襤褸</span>
                <span begin="2:56.090" end="2:56.295">的</span>
                <span begin="2:56.295" end="2:56.470">披</span>
                <span begin="2:56.470" end="2:56.936">風</span>
            </p>
            <p begin="2:56.965" end="3:00.619" itunes:key="L36" ttm:agent="v1">
                <span begin="2:56.965" end="2:57.450">戰</span>
                <span begin="2:57.450" end="2:57.995">嗎</span>
                <span begin="2:58.140" end="2:58.347">戰</span>
                <span begin="2:58.347" end="2:58.947">啊</span>
                <span begin="2:59.117" end="2:59.316">以</span>
                <span begin="2:59.316" end="2:59.954">最卑微</span>
                <span begin="2:59.954" end="3:00.150">的</span>
                <span begin="3:00.150" end="3:00.619">夢</span>
            </p>
            <p begin="3:00.632" end="3:06.549" itunes:key="L37" ttm:agent="v1">
                <span begin="3:00.632" end="3:01.171">致那</span>
                <span begin="3:01.171" end="3:01.594">黑</span>
                <span begin="3:01.594" end="3:01.984">夜</span>
                <span begin="3:01.984" end="3:02.519">中</span>
                <span begin="3:02.519" end="3:02.806">的</span>
                <span begin="3:02.806" end="3:03.431">嗚</span>
                <span begin="3:03.431" end="3:03.888">咽</span>
                <span begin="3:03.888" end="3:04.338">與</span>
                <span begin="3:04.338" end="3:04.687">怒</span>
                <span begin="3:04.687" end="3:06.549">吼</span>
            </p>
            <p begin="3:08.077" end="3:13.507" itunes:key="L38" ttm:agent="v1">
                <span begin="3:08.077" end="3:08.518">誰說</span>
                <span begin="3:08.518" end="3:08.940">站</span>
                <span begin="3:08.940" end="3:09.432">在</span>
                <span begin="3:09.432" end="3:09.940">光</span>
                <span begin="3:09.940" end="3:10.131">裡</span>
                <span begin="3:10.131" end="3:10.766">的</span>
                <span begin="3:10.766" end="3:11.723">才算</span>
                <span begin="3:11.723" end="3:12.021">英</span>
                <span begin="3:12.021" end="3:13.507">雄</span>
            </p>
        </div>
        <div begin="3:12.596" end="3:30.194">
            <p begin="3:12.596" end="3:19.100" itunes:key="L39" ttm:agent="v1">
                <span begin="3:12.596" end="3:13.179">你</span>
                <span begin="3:13.179" end="3:13.639">的</span>
                <span begin="3:13.639" end="3:14.117">斑</span>
                <span begin="3:14.117" end="3:15.041">駁</span>
                <span begin="3:15.041" end="3:15.423">與</span>
                <span begin="3:15.423" end="3:15.837">眾</span>
                <span begin="3:15.837" end="3:16.231">不</span>
                <span begin="3:16.231" end="3:19.100">同</span>
            </p>
            <p begin="3:20.029" end="3:30.194" itunes:key="L40" ttm:agent="v1">
                <span begin="3:20.029" end="3:20.511">你</span>
                <span begin="3:20.511" end="3:20.942">的</span>
                <span begin="3:20.942" end="3:21.373">沉</span>
                <span begin="3:21.373" end="3:22.417">默</span>
                <span begin="3:22.417" end="3:22.836">震</span>
                <span begin="3:22.836" end="3:23.183">耳</span>
                <span begin="3:23.183" end="3:23.590">欲</span>
                <span begin="3:23.590" end="3:26.477">聾</span>
                <span ttm:role="x-bg">
                    <span begin="3:26.108" end="3:26.336">(You</span>
                    <span begin="3:26.336" end="3:26.564">Are</span>
                    <span begin="3:26.564" end="3:26.855">The</span>
                    <span begin="3:26.855" end="3:27.260">He</span>
                    <span begin="3:27.260" end="3:30.194">ro)</span>
                </span>
            </p>
        </div>
        <div begin="3:26.506" end="3:37.712">
            <p begin="3:26.506" end="3:28.377" itunes:key="L41" ttm:agent="v1">
                <span begin="3:26.506" end="3:26.784">愛</span>
                <span begin="3:26.784" end="3:27.051">你</span>
                <span begin="3:27.051" end="3:27.323">孤</span>
                <span begin="3:27.323" end="3:27.548">身</span>
                <span begin="3:27.548" end="3:27.932">走暗</span>
                <span begin="3:27.932" end="3:28.377">巷</span>
            </p>
            <p begin="3:28.347" end="3:30.217" itunes:key="L42" ttm:agent="v1">
                <span begin="3:28.347" end="3:28.688">愛</span>
                <span begin="3:28.688" end="3:28.889">你</span>
                <span begin="3:28.889" end="3:29.097">不</span>
                <span begin="3:29.097" end="3:29.307">跪</span>
                <span begin="3:29.307" end="3:29.519">的</span>
                <span begin="3:29.519" end="3:29.765">模</span>
                <span begin="3:29.765" end="3:30.217">樣</span>
            </p>
            <p begin="3:30.184" end="3:32.010" itunes:key="L43" ttm:agent="v1">
                <span begin="3:30.184" end="3:30.520">愛</span>
                <span begin="3:30.520" end="3:30.700">你</span>
                <span begin="3:30.700" end="3:31.104">對峙</span>
                <span begin="3:31.104" end="3:31.395">過</span>
                <span begin="3:31.395" end="3:31.625">絕</span>
                <span begin="3:31.625" end="3:32.010">望</span>
            </p>
            <p begin="3:32.079" end="3:37.712" itunes:key="L44" ttm:agent="v1">
                <span begin="3:32.079" end="3:32.564">不肯</span>
                <span begin="3:32.564" end="3:32.997">哭</span>
                <span begin="3:32.997" end="3:33.446">一</span>
                <span begin="3:33.446" end="3:33.957">場</span>
                <span ttm:role="x-bg">
                    <span begin="3:33.489" end="3:33.727">(You</span>
                    <span begin="3:33.727" end="3:33.965">Are</span>
                    <span begin="3:33.965" end="3:34.194">The</span>
                    <span begin="3:34.194" end="3:34.599">He</span>
                    <span begin="3:34.599" end="3:37.712">ro)</span>
                </span>
            </p>
        </div>
        <div begin="3:34.002" end="3:41.255">
            <p begin="3:34.002" end="3:35.727" itunes:key="L45" ttm:agent="v1">
                <span begin="3:34.002" end="3:34.395">愛你</span>
                <span begin="3:34.395" end="3:35.076">來自於</span>
                <span begin="3:35.076" end="3:35.377">蠻</span>
                <span begin="3:35.377" end="3:35.727">荒</span>
            </p>
            <p begin="3:35.717" end="3:37.539" itunes:key="L46" ttm:agent="v1">
                <span begin="3:35.717" end="3:36.274">一生</span>
                <span begin="3:36.274" end="3:36.680">不借</span>
                <span begin="3:36.680" end="3:37.106">誰的</span>
                <span begin="3:37.106" end="3:37.539">光</span>
            </p>
            <p begin="3:37.560" end="3:39.384" itunes:key="L47" ttm:agent="v1">
                <span begin="3:37.560" end="3:37.885">你</span>
                <span begin="3:37.885" end="3:38.126">將</span>
                <span begin="3:38.126" end="3:38.542">造你</span>
                <span begin="3:38.542" end="3:38.789">的</span>
                <span begin="3:38.789" end="3:38.990">城</span>
                <span begin="3:38.990" end="3:39.384">邦</span>
            </p>
            <p begin="3:39.429" end="3:41.255" itunes:key="L48" ttm:agent="v1">
                <span begin="3:39.429" end="3:39.696">在</span>
                <span begin="3:39.696" end="3:39.921">廢</span>
                <span begin="3:39.921" end="3:40.357">墟</span>
                <span begin="3:40.357" end="3:40.728">之</span>
                <span begin="3:40.728" end="3:41.255">上</span>
            </p>
        </div>
        <div begin="3:41.272" end="4:01.236">
            <p begin="3:41.272" end="3:44.938" itunes:key="L49" ttm:agent="v1">
                <span begin="3:41.272" end="3:41.714">去</span>
                <span begin="3:41.714" end="3:42.350">嗎</span>
                <span begin="3:42.472" end="3:42.723">去</span>
                <span begin="3:42.723" end="3:43.175">啊</span>
                <span begin="3:43.440" end="3:43.648">以</span>
                <span begin="3:43.648" end="3:44.308">最卑微</span>
                <span begin="3:44.308" end="3:44.523">的</span>
                <span begin="3:44.523" end="3:44.938">夢</span>
                <span ttm:role="x-bg">
                    <span begin="3:42.019" end="3:42.471">(去嗎</span>
                    <span begin="3:42.918" end="3:43.460">去啊)</span>
                </span>
            </p>
            <p begin="3:44.917" end="3:48.689" itunes:key="L50" ttm:agent="v1">
                <span begin="3:44.917" end="3:45.391">戰</span>
                <span begin="3:45.391" end="3:45.999">嗎</span>
                <span begin="3:46.104" end="3:46.434">戰</span>
                <span begin="3:46.434" end="3:46.876">啊</span>
                <span begin="3:47.013" end="3:47.347">以</span>
                <span begin="3:47.347" end="3:47.976">最孤高</span>
                <span begin="3:47.976" end="3:48.208">的</span>
                <span begin="3:48.208" end="3:48.689">夢</span>
                <span ttm:role="x-bg">
                    <span begin="3:45.683" end="3:46.078">(戰嗎</span>
                    <span begin="3:46.618" end="3:47.117">戰啊)</span>
                </span>
            </p>
            <p begin="3:48.650" end="3:54.497" itunes:key="L51" ttm:agent="v1">
                <span begin="3:48.650" end="3:49.176">致那</span>
                <span begin="3:49.176" end="3:49.580">黑</span>
                <span begin="3:49.580" end="3:50.031">夜</span>
                <span begin="3:50.031" end="3:50.561">中</span>
                <span begin="3:50.561" end="3:50.833">的</span>
                <span begin="3:50.833" end="3:51.457">嗚</span>
                <span begin="3:51.457" end="3:51.878">咽</span>
                <span begin="3:51.878" end="3:52.429">與</span>
                <span begin="3:52.429" end="3:52.699">怒</span>
                <span begin="3:52.699" end="3:54.497">吼</span>
            </p>
            <p begin="3:56.017" end="4:01.236" itunes:key="L52" ttm:agent="v1">
                <span begin="3:56.017" end="3:56.562">誰說</span>
                <span begin="3:56.562" end="3:57.027">站</span>
                <span begin="3:57.027" end="3:57.458">在</span>
                <span begin="3:57.458" end="3:57.875">光</span>
                <span begin="3:57.875" end="3:58.110">裡</span>
                <span begin="3:58.110" end="3:58.890">的</span>
                <span begin="3:58.890" end="3:59.765">才算</span>
                <span begin="3:59.765" end="3:59.997">英</span>
                <span begin="3:59.997" end="4:01.236">雄</span>
            </p>
        </div>
    </body>
</tt>

在AMLL TTML Tool网页版读取后会出现显示问题
但是与示例文件比对后并没有发现Apple Music网页版抓取的TTML文件有什么问题
不知道是bug还是Apple Music网页版本身TTML歌词的问题

TTML Tool无法正确识别背景人声歌词

以See you again为例,导入Apple Music抓取的歌词后
在01:25处
主唱“And I'll tell you all about it when I see you again”
背景人声“I‘ll see you again”
正确的显示应该是主唱句下面跟着背景人声
此时TTML Tool无法识别背景人声的歌词 会将整段歌词虚化 并且背景人声歌词不显示
1
2
3

此时间段的ttml歌词

            <p begin="01:20.589" end="01:25.825" ttm:agent="v1" itunes:key="L18">
                <span begin="01:20.589" end="01:20.854">And</span>
                <span begin="01:20.854" end="01:21.038">I'll</span>
                <span begin="01:21.038" end="01:21.479">tell</span>
                <span begin="01:21.479" end="01:21.842">you</span>
                <span begin="01:21.842" end="01:22.222">all</span>
                <span begin="01:22.222" end="01:23.002">about</span>
                <span begin="01:23.002" end="01:23.359">it</span>
                <span begin="01:23.359" end="01:23.722">when</span>
                <span begin="01:23.722" end="01:23.900">I</span>
                <span begin="01:23.900" end="01:24.495">see</span>
                <span begin="01:24.495" end="01:24.894">you</span>
                <span begin="01:24.894" end="01:25.825">again</span>
                <span ttm:role="x-bg">
                    <span begin="01:25.625" end="01:25.795">I'll</span>
                    <span begin="01:25.795" end="01:26.015">see</span>
                    <span begin="01:26.015" end="01:26.158">you</span>
                    <span begin="01:26.158" end="01:26.517">again</span>
                    <span ttm:role="x-translation" xml:lang="zh-CN">回头凝望 我们携手走过漫长的旅程</span>
                </span>
                <span ttm:role="x-translation" xml:lang="zh-CN">与你重逢之时 我会敞开心扉倾诉所有</span>
            </p>
            <p begin="01:26.527" end="01:31.855" ttm:agent="v1" itunes:key="L19">
                <span begin="01:26.527" end="01:26.828">We've</span>
                <span begin="01:26.828" end="01:27.018">come</span>
                <span begin="01:27.018" end="01:27.209">a</span>
                <span begin="01:27.209" end="01:28.333">long</span>
                <span begin="01:28.333" end="01:29.166">way</span>
                <span begin="01:29.166" end="01:30.118">from</span>
                <span begin="01:30.118" end="01:30.510">where</span>
                <span begin="01:30.510" end="01:30.861">we</span>
                <span begin="01:30.861" end="01:31.855">began</span>
                <span ttm:role="x-bg">
                    <span begin="01:28.621" end="01:29.166">Yeah,</span>
                    <span begin="01:29.166" end="01:29.265">we</span>
                    <span begin="01:29.265" end="01:29.366">came</span>
                    <span begin="01:29.366" end="01:29.466">a</span>
                    <span begin="01:29.466" end="01:29.719">long</span>
                    <span begin="01:29.719" end="01:30.014">way</span>
                    <span ttm:role="x-translation" xml:lang="zh-CN">是的 我们携手走过了漫长的旅程</span>
                </span>
                <span ttm:role="x-translation" xml:lang="zh-CN">回头凝望 我们携手走过漫长的旅程</span>
            </p>
            <p begin="01:32.265" end="01:37.866" ttm:agent="v1" itunes:key="L20">
                <span begin="01:32.265" end="01:32.816">Oh,</span>
                <span begin="01:32.816" end="01:33.125">I'll</span>
                <span begin="01:33.125" end="01:33.595">tell</span>
                <span begin="01:33.595" end="01:33.970">you</span>
                <span begin="01:33.970" end="01:34.357">all</span>
                <span begin="01:34.357" end="01:35.106">about</span>
                <span begin="01:35.106" end="01:35.445">it</span>
                <span begin="01:35.445" end="01:35.844">when</span>
                <span begin="01:35.844" end="01:36.027">I</span>
                <span begin="01:36.027" end="01:36.588">see</span>
                <span begin="01:36.588" end="01:37.104">you</span>
                <span begin="01:37.104" end="01:37.866">again</span>
                <span ttm:role="x-bg">
                    <span begin="01:31.816" end="01:31.916">You</span>
                    <span begin="01:31.916" end="01:32.158">know</span>
                    <span begin="01:32.158" end="01:32.259">we</span>
                    <span begin="01:32.259" end="01:32.775">started,</span>
                    <span begin="01:37.622" end="01:37.779">let</span>
                    <span begin="01:37.779" end="01:37.911">me</span>
                    <span begin="01:37.911" end="01:38.221">tell</span>
                    <span begin="01:38.221" end="01:38.366">you</span>
                    <span ttm:role="x-translation" xml:lang="zh-CN">你知道我们已经敞开心肺了 让我来倾诉给你</span>
                </span>
                <span ttm:role="x-translation" xml:lang="zh-CN">与你重逢之时 我会敞开心扉倾诉所有</span>
            </p>

歌词文件
lyric-see-you-again.ttml.txt
原始歌词文件
original.ttml.txt

TTML Tool 似乎无法为一个歌词行中只有一个单词的歌词添加时间戳

(多图警告)在使用TTML Tool为只有一个单词的歌词行打轴之后,保存歌词文件再重新打开,记录的时间戳会消失(0:00.000)。在AMLL中表现为歌词未滚动到这一行时,歌词就已经亮起了。
对于背景人声同样有此问题。
请看VCR:
(GIF)
PixPin_2024-02-18_02-52-22

在AMLL中表现为这样(一直亮起):
PixPin_2024-02-18_02-19-29

查看ttml文件可知,这个单词缺失span标签:
PixPin_2024-02-18_02-45-08

修正方法:手动在ttml文件中为这个单词添加span。
PixPin_2024-02-18_02-47-42

修正后的效果(可以正常逐词):
PixPin_2024-02-18_02-51-01

增强型LRC文件导出

花时间打完逐字歌词轴后想导出一份其他格式的文件给手机播放器用,但是QRC和LRC都用不了,希望能加个增强型LRC文件导出的选项。

增强型LRC格式如下,与LRC区别就是给每个字加上时间以及行末加上结束时间,我试了两字以上同时间也是可以的

[00:09.666]大漠[00:10.206]羌笛[00:10.710]
[00:10.710]西风[00:11.278]过  [00:11.656]寒[00:11.872]铁衣[00:12.438]
[00:12.438][00:12.438]孤烟[00:12.893]里 [00:13.209]征夫[00:13.968]泪 [00:14.276]望[00:14.532]王师[00:15.120]几[00:15.481]朝夕[00:16.120]

[BUG] 网页版快捷键无效

系统版本: Windows 11 23H2 22631.3235
浏览器: Edge 122.0.2365.92 (Official build) (64-bit)

无法在AMLL TTML Tool网页版使用快捷键来打轴。
值得注意的是,Tauri 桌面版本也会出现同样的问题,但似乎出现问题的概率比较小?

另外我使用的中文输入法是搜狗输入法,不过我在打轴时会切换至Windows自带的英文输入法,不知道此问题与搜狗有无关系。

[Feature] 添加自动纠错、打轴歌词行显示、元数据按组增加。

如题。

  • 在上传至AMLL数据库时自动检测一些简单的数据,如是否有歌词行的 开始/结束 时间为0、元数据是否填写完整。

  • 在打轴模式歌词显示可以改善如下:

    • 在每行歌词前显示行号
    • 增加右键菜单,直接跳转至编辑模式对应位置
    • 添加行说明栏,标明其 行开始时间、结束时间、行号、歌词主体
  • 可以在为歌词添加元数据时选择"元数据组",就比如网易云音乐常用的一些元数据可以打包到一起,添加时直接添加组即可,不需要手动再一个一个点击,减少重复性操作

另外,如果实在没时间整的话可以等我来写()大概是在4.4号清明节左右我能有时间

[Bug反馈] 一个关于吞编辑的 Bug

触发过程: 我在打轴页下打了轴, 切到编辑页对歌词进行编辑后感觉不满意进行了撤回操作, 回到打轴页发现我之前打了一半的轴直接对我进行一个撒由那拉八八六 😡
动画
(此处有一个GIF, 轴的内容是为了展示 Bug 随便找了个搞笑视频)

初步开发计划图 (Initial Development Project Roadmap)

  • 基本功能
    • 基本输入、编辑、打轴功能
    • 读取保存 TTML 格式歌词
    • 配置歌词行行为(背景歌词、对唱歌词等)
    • 配置歌词文件元数据(名称,作者,网易云音乐ID等)
    • 拆分单词
    • 组合单词
    • 移动单词
  • 高级功能
    • LRC/YRC/QRC 歌词文件的导入导出
    • 通过纯文本导入歌词(可选自定助记符以自动拆分单词)
    • Lyricify Syllable 歌词文件的导入导出
    • 基于 Lyricify Syllable 格式的纯文本编辑模式(由于未来扩展TTML内容的缘故取消计划)
    • Jieba 分词拆分句子
    • 无 CJK 下的简单拆分句子
    • [ ] 打轴模式按键速查表(推迟制作)
    • 对日语下的汉字启用注音标注
    • ASS 字幕文件的导出(酌情实现导入)
    • AMLL 歌词效果预览
    • 生成网易云形式的日语音译歌词行(由于生成准确度因素取消计划)
    • 生成网易云格式的粤语音译歌词行(由于生成准确度因素取消计划)
    • 可配置的快捷键
    • 从 Apple Music 中获取 Apple Syllable 逐词歌词(也是 TTML 歌词)(推迟制作)
    • 移动端布局操作支持(推迟制作)
    • 国际化(Internationalization)支持

如有其他功能建议欢迎在下面回复!

背景人声

背景人声会跟在上一行后面,而不是另起一行,而且背景人声歌词大小和其他歌词一样大。
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.