Skip to content

Commit 98715d0

Browse files
Merge pull request #3 from spicytigermeat/v030
v030
2 parents 94d51d9 + 83a2532 commit 98715d0

43 files changed

Lines changed: 2180 additions & 355 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/labelmakr_sc.png

326 KB
Loading

CHANGELOG.txt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,29 @@ v020
4343
- French transcriptions automatically account for contractions (j' in j'taime)
4444
- Implemented the tenatively named "OovG2P" into SOFA.
4545
- this utilizes OpenUTAU's G2P model system to guess the pronunciation for words that are not in the given dictionaries.
46-
- This is only applied to English and French, since Japanese has it's own weird G2p thing and Chinese... doesn't really need one.
46+
- This is only applied to English and French, since Japanese has it's own weird G2p thing and Chinese... doesn't really need one.
47+
48+
v021
49+
- Fixed a few scripts to allow for early CPU inference.
50+
51+
v030
52+
- Huge update
53+
- Support for colstone's Korean SOFA model!
54+
- Korean GUI translation by 군곰 (KUNGOM)
55+
- Lot's of small GUI tweaks/changes/addition
56+
- Light/Dark mode toggle (Dark mode by default)
57+
- cute little icons on the buttons, custom fonts for English/Japanese/Chinese/Korean
58+
- Allows you to choose to install CPU or GPU version
59+
- More code consistency
60+
- Global implementation of Pathlib
61+
- removed weird inconsistencies, like unused variables
62+
- Implemented the logging module for slightly easier troubleshooting
63+
- Implemented a python module I wrote called "ez-localizr", to make localization easy :)
64+
- First (beta) implementation of Labbu label fixing.
65+
- uses label tool I wrote called "labbu" to contextually post-process labels
66+
- Currently it's most useful for English, but there's still some good fixes for non-English languages.
67+
- Fixed up the transcription editor
68+
- Less unhelpful text in the file selection box
69+
- Better interfacing with pygame mixer for playing audio
70+
- Much easier to implement custom SOFA models.
71+
- Here's a guide! https://github.com/spicytigermeat/LabelMakr/blob/v030/DOCS/implement_custom_sofa_model.md

DOCS/credits.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Credits
2+
3+
## SOFA & SOFA Models 🛋️
4+
5+
- [SOFA](https://github.com/qiuqiao/SOFA/releases) & [Mandarin SOFA model](https://github.com/qiuqiao/SOFA/releases/tag/v1.0.1) developed by suco/qiuqiao.
6+
- [tgm_sofa_en](https://github.com/spicytigermeat/SOFA-Models/releases/tag/v0.0.5) is developed by me, tigermeat
7+
- [Japanese](https://github.com/colstone/SOFA_Models/releases/tag/JPN-V0.0.2b) & [Korean](https://github.com/colstone/SOFA_Models/releases/tag/KOR-V0.01b) SOFA models trained by colstone. The installed versions are trimmed by me to save space. (removed opimizer keys from statedict)
8+
- [Millefeuille SOFA model](https://github.com/imsupposedto/SOFA-Models/releases/tag/millefeuille_b001) & fr_g2p model trained by imsupposedto.
9+
- [Japanese G2p Compiled Version](https://github.com/CjangCjengh/japanese_g2p) by CjangCjengh.
10+
- G2P models used are trained with [OpenUTAU's G2P system](https://github.com/stakira/OpenUtau/tree/master/py).
11+
12+
## GUI Translations 🗣️
13+
- English/Japanese: tigermeat
14+
- Traditional Chinese: ArchiVoice
15+
- Indonesian: Koji
16+
- French: [Hibya](https://twitter.com/Tweek_Twix) & [Mim](https://twitter.com/mimsynth)
17+
- Korean: [군곰 (KUNGOM)](https://twitter.com/utaukg)
18+
19+
## Beta Testers 🧪
20+
- [nobodyP](https://github.com/nobodyP)
21+
- [Asteriski](https://github.com/agentasteriski)
22+
- [Guillotama](https://twitter.com/Guillotamaa)
23+
- [imsupposedto](https://github.com/imsupposedto)
24+
- [Arden](https://github.com/Mildemelwe)
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# How to implement your own SOFA Model.
2+
Here is a guide on how to implement your own SOFA model into LabelMakr!
3+
4+
NOTE:
5+
- Please use ISO lang codes for LabelMakr. For example, if you are training an English model, suffix it with "en". If the accent is a specific region or dialect, you can do this: "en_uk". This is done to keep the naming cohesive.
6+
- The G2p is TOTALLY optional! It's only necessary for languages where you will be likely to find words outside of the dictionary provided. For example, english has a lot of strange compound words, so the G2p can guess that. If your language is consistent in terms of spelling/pronunciation, like Spanish, a G2p is probably not necessary.
7+
- There's no simple guides out there for the G2p's, but it uses OpenUTAU's G2p models with modified training parameters.
8+
9+
## What you will need
10+
- SOFA Model (renamed to model.ckpt)
11+
- SOFA Dictionary (renamed to dict.txt)
12+
13+
So, the folder structure will look like this once you have it set. Let's assume your model is called "custom_sofa_en"
14+
```
15+
LabelMakr
16+
| assets
17+
| corpus
18+
| models
19+
| | custom_sofa_en
20+
| | | dict.txt
21+
| | | model.ckpt
22+
| strings
23+
| labelmakr.py
24+
...
25+
```
26+
27+
Optional:
28+
29+
### OpenUTAU G2p
30+
- OpenUTAU G2p CHECKPOINT (usually called g2p-best.ptsd, renamed to model.ptsd)
31+
- OpenUTAU G2p training config (called cfg.yaml)
32+
33+
Change the `_target_` in all 3 locations in cfg.yaml to this:
34+
```
35+
_target_: models.g2p_model.G2p
36+
Decoder:
37+
_target_: models.g2p_model.Decoder
38+
...
39+
Encoder:
40+
_target_: models.g2p_model.Encoder
41+
...
42+
```
43+
44+
This is what your folder structure will look like when you have it set up with a G2p. Let's assume your model is called "custom_sofa_en".
45+
You need to be sure that all of the g2p items are saved in a folder called "g2p". LabelMakr will automatically determine if your SOFA Model has a G2p available to use.
46+
```
47+
LabelMakr
48+
| assets
49+
| corpus
50+
| models
51+
| | custom_sofa_en
52+
| | | g2p
53+
| | | | cfg.yaml
54+
| | | | model.ptsd
55+
| | | dict.txt
56+
| | | model.ckpt
57+
| strings
58+
| labelmakr.py
59+
...
60+
```
File renamed without changes.

README.md

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,27 @@
1-
# LabelMakr 🛋️
2-
A GUI Toolkit for generation of Singing Voice Synthesizer Phoneme-level labels, heavily utilizing SOFA & Whisper.
3-
4-
Follow development on trello [here](https://trello.com/b/ybVNYcmA/labelmakr)!
1+
<p align="center">
2+
<img src="https://github.com/spicytigermeat/LabelMakr/blob/v030/assets/labelmakr.png" alt="LabelMakr 🛋️">
3+
</p>
54

65
<p align="center">
7-
<img src="https://github.com/spicytigermeat/LabelMakr/assets/103609620/3b482e7e-3f7c-42cf-a562-3ca0fdca2de0">
6+
<img src="https://github.com/spicytigermeat/LabelMakr/blob/v030/.github/labelmakr_sc.png", alt="Screenshot of LabelMakr and the transcription editor.">
87
</p>
98

9+
LabelMakr is a GUI tool to help users easily generate SVS phoneme-level labels. It is intended for use with DiffSinger, but is easily adaptable for other systems. Currently, LabelMakr has full support for English, Japanese, Chinese, French and Korean singing!
10+
1011
Please use the portable version for Windows found [here](https://github.com/spicytigermeat/LabelMakr/releases/tag/v020)!!
1112

1213
## Community Contributions 🧑‍🤝‍🧑
1314

1415
- French Usage Guide can be found [here](https://utaufrance.com/comment-utiliser-labelmakr/)! (Written by [Mim](https://twitter.com/mimsynth))
1516

16-
# Credits 📰
17-
18-
- SOFA & v1.0.0_mandarin_song.ckpt SOFA model developed by [suco/qiuqiao](https://github.com/qiuqiao/SOFA).
19-
- [tgm_sofa](https://github.com/spicytigermeat/SOFA-Models/releases/tag/v0.0.4) is developed by me, tigermeat (used ver: v005)
20-
- Japanese SOFA model trained by [colstone](https://github.com/colstone/SOFA_Models/releases/tag/JPN-V0.0.2b). The installed version is trimmed to save space. (used ver: v0.0.2)
21-
- Japanese G2p Compiled Version by [CjangCjengh](https://github.com/CjangCjengh/japanese_g2p).
22-
- Millefeuille SOFA model & fr_g2p model trained by [imsupposedto](https://github.com/imsupposedto).
23-
- G2P models used are trained with [OpenUTAU's G2P system](https://github.com/stakira/OpenUtau/tree/master/py).
24-
- Beta testers: nobodyP, Asteriski, Guillotama, imsupposedto
17+
## Custom SOFA Model Implementation
2518

26-
## GUI Translations 🗣️
27-
- English/Japanese: tigermeat
28-
- Traditional Chinese: ArchiVoice
29-
- Indonesian: Koji
30-
- French: Hibya & Mim
19+
Please check out the guide on how to implement custom SOFA models [here!](https://github.com/spicytigermeat/LabelMakr/blob/v030/DOCS/implement_custom_sofa_model.md)
3120

32-
# Plans 📝
21+
## Credits
3322

34-
- Implement automatic label cleanup (using labbu library)
35-
- Continued GUI refinement and improvements!
36-
- Clean up code and fix up localization method (i don't like i18n)
23+
Please check out credits [here!](https://github.com/spicytigermeat/LabelMakr/blob/v030/DOCS/credits.md)
3724

3825
## Manual Installation 🧰
3926

40-
Read the guide on how to manually install LabelMakr [here](https://github.com/spicytigermeat/LabelMakr/blob/main/manual_install_guide.md)!
27+
Read the guide on how to manually install LabelMakr [here!](https://github.com/spicytigermeat/LabelMakr/blob/v030/DOCS/manual_install_guide.md)

assets/CREDIT_README.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
All small icons downloaded from Google Fonts.
2+
3+
"Rainy Hearts" font by Camellina (tr.camellina@gmail.com)

assets/LICENSE.txt

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
Creative Commons Legal Code
2+
3+
CC0 1.0 Universal
4+
5+
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6+
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7+
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8+
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9+
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10+
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11+
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12+
HEREUNDER.
13+
14+
Statement of Purpose
15+
16+
The laws of most jurisdictions throughout the world automatically confer
17+
exclusive Copyright and Related Rights (defined below) upon the creator
18+
and subsequent owner(s) (each and all, an "owner") of an original work of
19+
authorship and/or a database (each, a "Work").
20+
21+
Certain owners wish to permanently relinquish those rights to a Work for
22+
the purpose of contributing to a commons of creative, cultural and
23+
scientific works ("Commons") that the public can reliably and without fear
24+
of later claims of infringement build upon, modify, incorporate in other
25+
works, reuse and redistribute as freely as possible in any form whatsoever
26+
and for any purposes, including without limitation commercial purposes.
27+
These owners may contribute to the Commons to promote the ideal of a free
28+
culture and the further production of creative, cultural and scientific
29+
works, or to gain reputation or greater distribution for their Work in
30+
part through the use and efforts of others.
31+
32+
For these and/or other purposes and motivations, and without any
33+
expectation of additional consideration or compensation, the person
34+
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35+
is an owner of Copyright and Related Rights in the Work, voluntarily
36+
elects to apply CC0 to the Work and publicly distribute the Work under its
37+
terms, with knowledge of his or her Copyright and Related Rights in the
38+
Work and the meaning and intended legal effect of CC0 on those rights.
39+
40+
1. Copyright and Related Rights. A Work made available under CC0 may be
41+
protected by copyright and related or neighboring rights ("Copyright and
42+
Related Rights"). Copyright and Related Rights include, but are not
43+
limited to, the following:
44+
45+
i. the right to reproduce, adapt, distribute, perform, display,
46+
communicate, and translate a Work;
47+
ii. moral rights retained by the original author(s) and/or performer(s);
48+
iii. publicity and privacy rights pertaining to a person's image or
49+
likeness depicted in a Work;
50+
iv. rights protecting against unfair competition in regards to a Work,
51+
subject to the limitations in paragraph 4(a), below;
52+
v. rights protecting the extraction, dissemination, use and reuse of data
53+
in a Work;
54+
vi. database rights (such as those arising under Directive 96/9/EC of the
55+
European Parliament and of the Council of 11 March 1996 on the legal
56+
protection of databases, and under any national implementation
57+
thereof, including any amended or successor version of such
58+
directive); and
59+
vii. other similar, equivalent or corresponding rights throughout the
60+
world based on applicable law or treaty, and any national
61+
implementations thereof.
62+
63+
2. Waiver. To the greatest extent permitted by, but not in contravention
64+
of, applicable law, Affirmer hereby overtly, fully, permanently,
65+
irrevocably and unconditionally waives, abandons, and surrenders all of
66+
Affirmer's Copyright and Related Rights and associated claims and causes
67+
of action, whether now known or unknown (including existing as well as
68+
future claims and causes of action), in the Work (i) in all territories
69+
worldwide, (ii) for the maximum duration provided by applicable law or
70+
treaty (including future time extensions), (iii) in any current or future
71+
medium and for any number of copies, and (iv) for any purpose whatsoever,
72+
including without limitation commercial, advertising or promotional
73+
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74+
member of the public at large and to the detriment of Affirmer's heirs and
75+
successors, fully intending that such Waiver shall not be subject to
76+
revocation, rescission, cancellation, termination, or any other legal or
77+
equitable action to disrupt the quiet enjoyment of the Work by the public
78+
as contemplated by Affirmer's express Statement of Purpose.
79+
80+
3. Public License Fallback. Should any part of the Waiver for any reason
81+
be judged legally invalid or ineffective under applicable law, then the
82+
Waiver shall be preserved to the maximum extent permitted taking into
83+
account Affirmer's express Statement of Purpose. In addition, to the
84+
extent the Waiver is so judged Affirmer hereby grants to each affected
85+
person a royalty-free, non transferable, non sublicensable, non exclusive,
86+
irrevocable and unconditional license to exercise Affirmer's Copyright and
87+
Related Rights in the Work (i) in all territories worldwide, (ii) for the
88+
maximum duration provided by applicable law or treaty (including future
89+
time extensions), (iii) in any current or future medium and for any number
90+
of copies, and (iv) for any purpose whatsoever, including without
91+
limitation commercial, advertising or promotional purposes (the
92+
"License"). The License shall be deemed effective as of the date CC0 was
93+
applied by Affirmer to the Work. Should any part of the License for any
94+
reason be judged legally invalid or ineffective under applicable law, such
95+
partial invalidity or ineffectiveness shall not invalidate the remainder
96+
of the License, and in such case Affirmer hereby affirms that he or she
97+
will not (i) exercise any of his or her remaining Copyright and Related
98+
Rights in the Work or (ii) assert any associated claims and causes of
99+
action with respect to the Work, in either case contrary to Affirmer's
100+
express Statement of Purpose.
101+
102+
4. Limitations and Disclaimers.
103+
104+
a. No trademark or patent rights held by Affirmer are waived, abandoned,
105+
surrendered, licensed or otherwise affected by this document.
106+
b. Affirmer offers the Work as-is and makes no representations or
107+
warranties of any kind concerning the Work, express, implied,
108+
statutory or otherwise, including without limitation warranties of
109+
title, merchantability, fitness for a particular purpose, non
110+
infringement, or the absence of latent or other defects, accuracy, or
111+
the present or absence of errors, whether or not discoverable, all to
112+
the greatest extent permissible under applicable law.
113+
c. Affirmer disclaims responsibility for clearing rights of other persons
114+
that may apply to the Work or any use thereof, including without
115+
limitation any person's Copyright and Related Rights in the Work.
116+
Further, Affirmer disclaims responsibility for obtaining any necessary
117+
consents, permissions or other rights required for any use of the
118+
Work.
119+
d. Affirmer understands and acknowledges that Creative Commons is not a
120+
party to this document and has no duty or obligation with respect to
121+
this CC0 or use of the Work.

assets/PixelMplus10-Regular.ttf

1.08 MB
Binary file not shown.

assets/PixelOperator.ttf

16.9 KB
Binary file not shown.

0 commit comments

Comments
 (0)