GithubHelp home page GithubHelp logo

kgasenzer / avocodo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ncsoft/avocodo

0.0 0.0 0.0 30 KB

Official implementation of "Avocodo: Generative Adversarial Network for Artifact-Free Vocoder" (AAAI2023)

License: Other

Python 97.46% Shell 2.54%

avocodo's Introduction

๐Ÿฅ‘ Avocodo: Generative Adversarial Network for Artifact-Free Vocoder

Accepted for publication in the 37th AAAI conference on artificial intelligence.

https://img.shields.io/badge/arXiv-2211.04610-red.svg?style=plastic https://img.shields.io/badge/Sample_Page-Avocodo-blue.svg?style=plastic https://img.shields.io/badge/NC_SpeechAI-publications-brightgreen.svg?style=plastic

In our paper, we proposed Avocodo. We provide our implementation as an open source in this repository.

Abstract : Neural vocoders based on the generative adversarial neural network (GAN) have been widely used due to their fast inference speed and lightweight networks while generating high-quality speech waveforms. Since the perceptually important speech components are primarily concentrated in the low-frequency bands, most GAN-based vocoders perform multi-scale analysis that evaluates downsampled speech waveforms. This multi-scale analysis helps the generator improve speech intelligibility. However, in preliminary experiments, we discovered that the multi-scale analysis which focuses on the low-frequency bands causes unintended artifacts, e.g., aliasing and imaging artifacts, which degrade the synthesized speech waveform quality. Therefore, in this paper, we investigate the relationship between these artifacts and GAN-based vocoders and propose a GAN-based vocoder, called Avocodo, that allows the synthesis of high-fidelity speech with reduced artifacts. We introduce two kinds of discriminators to evaluate speech waveforms in various perspectives: a collaborative multi-band discriminator and a sub-band discriminator. We also utilize a pseudo quadrature mirror filter bank to obtain downsampled multi-band speech waveforms while avoiding aliasing. According to experimental resutls, Avocodo outperforms baseline GAN-based vocoders, both objectviely and subjectively, while reproducing speech with fewer artifacts.

Pre-requisites

  1. Install pyenv or miniconda
  1. Clone this repository
  2. Setup virtual environment and install python requirements. Please refer pyproject.toml
pyenv install 3.8.11
pyenv virtualenv 3.8.11 avocodo
pyenv local avocodo

pip install wheel
pip install poetry

poetry install
  1. OR: set up miniconda environment with
conda create -n avocodo python=3.8
conda activate avocodo
pip install -r requirements.txt
  1. Download and extract the LJ Speech dataset.
  • Move all wav files to LJSpeech-1.1/wavs or set symbolic link to corresponding data folder.
  • Split dataset into a trainset and a validationset.
cat LJSpeech-1.1/metadata.csv | tail -n 13000 > training.txt
cat LJSpeech-1.1/metadata.csv | head -n 100 > validation.txt

Training

python avocodo/train.py --config avocodo/configs/avocodo_v1.json

Inference

python avocodo/inference.py --version ${version} --checkpoint_file_id ${checkpoint_file_id}

Reference

We referred to below repositories to make this project.

HiFi-GAN

Parallel-WaveGAN

avocodo's People

Contributors

kgasenzer avatar daeun0921 avatar

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.