mmorise / no7_singing

Creative Commons Zero v1.0 Universal
13 stars 2 forks source link

終了位置 < 開始位置となっているラベルがある #1

Closed Hiroshiba closed 3 days ago

Hiroshiba commented 1 week ago

ラベルを処理していて、おそらくミスだと思われる箇所がいくつかみつかったので報告いたします。

発見したのは、mono_label/*.labのうち、終了位置が開始位置よりも手前になっているファイルです。 例えばこちらです。

https://github.com/mmorise/no7_singing/blob/e83646bdae93de591113e15480d5775bf2a53773/mono_label/01.lab#L65

網羅的に調べるチェック用のコードを作ってみたところ、結構な数がありそうでした。

↓実行結果

```java end < start: C:/path/to/mono_label/01.lab: 427486840 427350810 cl end < start: C:/path/to/mono_label/01.lab: 973935420 959000000 m end < start: C:/path/to/mono_label/06.lab: 1087059560 1087058823 y end < start: C:/path/to/mono_label/08.lab: 394527880 394460240 i end < start: C:/path/to/mono_label/08.lab: 515066630 513750000 i end < start: C:/path/to/mono_label/08.lab: 586354630 585742480 pau end < start: C:/path/to/mono_label/11.lab: 174877260 174741240 k end < start: C:/path/to/mono_label/11.lab: 390369910 389350130 u end < start: C:/path/to/mono_label/12.lab: 894883510 891414620 a end < start: C:/path/to/mono_label/15.lab: 96108020 93931470 pau end < start: C:/path/to/mono_label/23.lab: 91485260 91199999 o end < start: C:/path/to/mono_label/23.lab: 394123530 394055510 u end < start: C:/path/to/mono_label/26.lab: 1031250000 1030473330 m end < start: C:/path/to/mono_label/28.lab: 41845910 41772150 i end < start: C:/path/to/mono_label/29.lab: 166315770 164547599 k end < start: C:/path/to/mono_label/38.lab: 58666659 58375560 pau end < start: C:/path/to/mono_label/38.lab: 213734610 213666650 pau end < start: C:/path/to/mono_label/38.lab: 505905280 505666660 pau end < start: C:/path/to/mono_label/47.lab: 68195540 67777777 o end < start: C:/path/to/mono_label/47.lab: 75886210 75811540 k end < start: C:/path/to/mono_label/47.lab: 105653310 105255090 k end < start: C:/path/to/mono_label/47.lab: 315939510 315555555 u end < start: C:/path/to/mono_label/47.lab: 458901260 458353710 a end < start: C:/path/to/mono_label/47.lab: 465671040 465347490 k end < start: C:/path/to/mono_label/47.lab: 546734140 545555555 i end < start: C:/path/to/mono_label/47.lab: 635555555 635463020 r end < start: C:/path/to/mono_label/47.lab: 639743910 638723460 a end < start: C:/path/to/mono_label/47.lab: 781859440 781386550 i end < start: C:/path/to/mono_label/47.lab: 860632760 858888888 N end < start: C:/path/to/mono_label/48.lab: 78300620 77142857 j end < start: C:/path/to/mono_label/48.lab: 283635730 282857142 u end < start: C:/path/to/mono_label/48.lab: 326370320 325714285 e end < start: C:/path/to/mono_label/48.lab: 343270020 342857142 i end < start: C:/path/to/mono_label/48.lab: 351806990 351428571 cl end < start: C:/path/to/mono_label/48.lab: 386626840 385714285 a end < start: C:/path/to/mono_label/48.lab: 403551429 402857142 e end < start: C:/path/to/mono_label/48.lab: 704037580 703315800 a end < start: C:/path/to/mono_label/48.lab: 711977210 711952320 a end < start: C:/path/to/mono_label/48.lab: 728951580 728155130 o end < start: C:/path/to/mono_label/48.lab: 806282020 806207350 a end < start: C:/path/to/mono_label/48.lab: 814744320 814285714 a end < start: C:/path/to/mono_label/50.lab: 241166420 241166410 h end < start: C:/path/to/mono_label/50.lab: 453603800 451612903 e end < start: C:/path/to/mono_label/50.lab: 519011540 516129032 a end < start: C:/path/to/mono_label/50.lab: 597957330 595438620 i end < start: C:/path/to/mono_label/50.lab: 595438620 591975400 N end < start: C:/path/to/mono_label/50.lab: 591975400 591896690 b end < start: C:/path/to/mono_label/50.lab: 591896690 589771530 i end < start: C:/path/to/mono_label/50.lab: 591267010 590322580 i end < start: C:/path/to/mono_label/50.lab: 659508290 658064516 u ```

チェック用のコードと実行方法も掲載します。

↓check.py(チェック用のコード)

"""
.labファイルを読み、ラベル位置情報がおかしそうなものがあったらprintするコード
"""

import argparse
from glob import glob
from pathlib import Path

parser = argparse.ArgumentParser()
parser.add_argument("input_glob")
args = parser.parse_args()

for path in sorted(glob(args.input_glob)):
    labs = Path(path).read_text().splitlines()

    before_end = 0  # 1つ前のラベルの終了位置
    for lab in labs:
        start, end, label = lab.split()
        start, end = int(start), int(end)

        # endがstartより小さいものがあればprint
        if end < start:
            print(f"end < start: {path}: {start} {end} {label}")

        before_end = end

↓実行コマンド

python check.py "C:/path/to/mono_label/*.lab"
mmorise commented 1 week ago

ご連絡ありがとうございます. ラベル付けのミスのようですね...当時の担当者で対応できそうでしたら再チェックするようにいたします.

mmorise commented 5 days ago

追加の連絡で,ラベル情報を更新しました. 8月に歌声合成のデモを作っており,そこでおかしなラベルがあったので修正していたそうです.nnsvsで動かしておりチェックも問題なくクリアしておりますので,こちらでご検討頂ければ幸いです.

Hiroshiba commented 3 days ago

新しいラベルでチェック用コードを実行し、課題となりそうなラベルがなかったことが確認できました。 ありがとうございます!