Skip to content

Latest commit

 

History

History
104 lines (82 loc) · 3.55 KB

README.md

File metadata and controls

104 lines (82 loc) · 3.55 KB

Factorized Hierarchical Variational Autoencoders

This repository contains the code to reproduce the core results from the paper Unsupervised Learning of Disentangled and Interpretable Representations from Sequential Data.

To cite this work, please use

@inproceedings{hsu2017learning,
  title={Unsupervised Learning of Disentangled and Interpretable Representations from Sequential Data},
  author={Hsu, Wei-Ning and Zhang, Yu and Glass, James},
  booktitle={Advances in Neural Information Processing Systems},
  year={2017},
}

Dependencies

This project uses Python 2.7.6. Before running the code, you have to install

The former 6 dependencies can be installed using pip by running

pip install -r requirements.txt

The last one requires Kaldi before a specific commit (d1e1e3b). If you don't have Kaldi before that version, you can install both Kaldi and Kaldi-Python by running

make all

Usage

The code structure follows Kaldi's convention. Scripts for each dataset can be found in egs/<dataset> folder. If you have questions, please write an email to [email protected]

TIMIT

To reproduce the experiments for TIMIT, run:

# stage = -1 for data preparation; run only once.
cd egs/timit
./run_fhvae.sh --TIMIT_RAW_DATA <timit_raw_data_dir> --stage -1

Aurora-4

Before running FHVAE experiments, you need to have the following Kaldi data directories of Aurora-4 prepared: <aurora4_kaldi_egs_dir>/data/{train_si84_clean, train_si84_multi, dev_0330, test_eval92}.

To reproduce the experiments for Aurora-4, run:

# stage = -1 for data preparation; run only once.
cd egs/aurora4 
./run_fhvae.sh --AURORA4_KALDI_EGS <aurora4_kaldi_egs_dir> --stage -1

Experimental Results

A. Visualizing Factorization

We show the combination of 6 latent sequence variables and 6 latent segment variables. The latent sequence variable for each column is the same; likewise, the latent segment variable for each row is the same.

TIMIT (alpha = 0)

TIMIT (alpha = 10)

Aurora-4 (alpha = 0)

Aurora-4 (alpha = 10)

B. Utterance-Level S-Vector Modification

We show replacing S-vector of a target utterance with that of a reference utterance to alter the sequence-level attribute, which can be applied to speaker conversion or denoising. The FHVAE model used for following modifications is trained on Aurora-4 with alpha = 0

converting a female speaker to a male speaker

source utterance

reference utterance

S-vector-replaced source utterance

removing background restaurant noise

source utterance

reference utterance

S-vector-replaced source utterance