# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: MIT # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. import json import torch from hifigan_models import Generator from hifigan_env import AttrDict from hifigan_denoiser import Denoiser def lines_to_list(filename): """ Takes a text file of filenames and makes a list of filenames """ with open(filename, encoding="utf-8") as f: files = f.readlines() files = [f.rstrip() for f in files] return files def load_vocoder(vocoder_path, config_path, to_cuda=False): with open(config_path) as f: data_vocoder = f.read() config_vocoder = json.loads(data_vocoder) h = AttrDict(config_vocoder) if "blur" in vocoder_path: config_vocoder["gaussian_blur"]["p_blurring"] = 0.5 else: if "gaussian_blur" in config_vocoder: config_vocoder["gaussian_blur"]["p_blurring"] = 0.0 else: config_vocoder["gaussian_blur"] = {"p_blurring": 0.0} h["gaussian_blur"] = {"p_blurring": 0.0} state_dict_g = torch.load(vocoder_path, map_location="cpu")["generator"] # load hifigan vocoder = Generator(h) vocoder.load_state_dict(state_dict_g) denoiser = Denoiser(vocoder) if to_cuda: vocoder.cuda() denoiser.cuda() vocoder.eval() denoiser.eval() return vocoder, denoiser