File size: 2,234 Bytes
82334b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Copyright 2024 LY Corporation

# LY Corporation licenses this file to you under the Apache License,
# version 2.0 (the "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at:

#   https://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

import logging
import os
from os.path import dirname

format = "%(asctime)s (%(module)s:%(lineno)d) %(levelname)s: %(message)s"


def getLogger(verbose=0, filename=None, name="ttwave"):
    logger = logging.getLogger(name)
    if verbose >= 100:
        logger.setLevel(logging.DEBUG)
    elif verbose > 0:
        logger.setLevel(logging.INFO)
    else:
        logger.setLevel(logging.WARN)

    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(logging.Formatter(format))
    logger.addHandler(stream_handler)

    if filename is not None:
        os.makedirs(dirname(filename), exist_ok=True)
        file_handler = logging.FileHandler(filename=filename)
        file_handler.setLevel(logging.INFO)
        file_handler.setFormatter(logging.Formatter(format))
        logger.addHandler(file_handler)

    return logger


def load_libritts_spk_metadata(path="external/speakers.tsv", debug=False):
    spk2meta = {}
    with open(path) as f:
        lines = f.readlines()
        for line in lines[1:]:  # skip header
            vals = line.strip().split("\t")
            if len(vals) == 4:
                spk, gender, subset, name = vals
            elif len(vals) == 3:
                spk, gender, subset = vals
                name = "Unknown"
            spk2meta[spk] = {"gender": gender, "subset": subset, "name": name}

    if debug:
        eval_spks = [1188, 1995, 260]
        val_spks = [89, 90, 91]
        train_spks = [100, 101, 102, 1001]
        spks = eval_spks + val_spks + train_spks
        spk2meta = {k: v for k, v in spk2meta.items() if int(k) in spks}

    return spk2meta