1. 11 Oct, 2021 6 commits
  2. 10 Oct, 2021 1 commit
    • moto's avatar
      Store n_bits in WaveRNN (#1847) · 9637c6bf
      moto authored
      Move the computation of `#classes -> #bits` to the constructor of WaveRNN and attach it to the instance, so that it can be reused elsewhere.
      9637c6bf
  3. 09 Oct, 2021 1 commit
  4. 08 Oct, 2021 6 commits
  5. 07 Oct, 2021 7 commits
    • Caroline Chen's avatar
      21a0d29e
    • nateanl's avatar
    • moto's avatar
      Add license to pre-trained model doc (#1836) · f9663a7b
      moto authored
      f9663a7b
    • Caroline Chen's avatar
      33a655fd
    • moto's avatar
      Merge factory functions of pre-training model and fine-tuned model (#1830) · 274ada80
      moto authored
      This commit merges wav2vec2/hubert factory functions for pre-training and fine-tuning. In #1829, we added parameters to customize the models that are not part of architecture, and `aux_num_out` falls into this category, so it is no longer necessary to have separate functions. This concludes the wav2vec2/HuBERT API update in release 0.10.
      
      The summary of BC-breaking changes on wav2vec2 APIs between 0.9 and 0.10 (when this commit is incorporated)
      1. `Wav2Vec2Model.extract_features`
      In 0.9, it was returning the output from `FeatureExtractor` module. In 0.10, it returns the list of outputs from the intermediate layers of `TransformerEncoder` block.
      2. `wav2vec2_base(num_out: int)` -> `wav2vec2_base(<dropout_params:float>, aux_num_out: Optional[int]=None)`
          - `num_out` was renamed to `aux_num_out` and optional. If it is omitted, the resulting model does not have the linear layer for fine-tuning.
          - Added dropout parameters.
      274ada80
    • moto's avatar
      60aeb78a
    • moto's avatar
      Make the core wav2vec2 factory function public (#1829) · 31a69c36
      moto authored
      This commit makes the following changes
      1. Make the factory function with full customizability public.
          i.e. `_get_model(...) -> wav2vec2_model(...)`.
      2. Change the other architecture-specific factory functions so that they accept parameters not related to the model architecture (such as dropout).
          i.e. `wav2vec2_base() -> wav2vec2_base(encoder_projection_dropout, encoder_attention_dropout, encoder_ff_interm_dropout, ...)`
      
      ### Why?
      
      While adding the pre-trained weight support, I realized that separating API for model construction and pre-trained support achieves simple code organization because of the good separation of concern. As mentioned in #1821, in this framework,
        1. Model implementation is responsible for computation logic,
        2. factory functions are responsible for customizability and model construction,
        3. and pre-trained weight API is responsible for constructing a model and loading pre-trained weights along with the complementary information (such as pre-processing and class labels).
      
      (note: for simple models, combining 1 and 2 is also okay.)
      
      This means that factory functions has to support all the customizability required by pre-trained weight API. The current implementation uses the internal function like `from .model import Wav2Vec2Model, _get_model`, which is a bit strange.
      
      This PR rectifies it by making the mother factory function public.
      This also clarifies the purpose of having the other factory functions as public API, which is just a syntax sugar for constructing un-trained model with specific architecture. So this commit also adds supplemental parameters to them.
      31a69c36
  6. 06 Oct, 2021 7 commits
  7. 05 Oct, 2021 5 commits
  8. 01 Oct, 2021 1 commit
    • moto's avatar
      Fix HuBERT xlarge configuration and test (#1811) · 13b2349a
      moto authored
      1. Fix the HuBERT xlarge model config
      2. In the 48 transformer layers of HuBERT xlarge model, very few elements deviate from the equivalent model of fairseq, and exceeds the default atol 1e-5. This commit relax it to 3e-5 for the specific test.
      13b2349a
  9. 30 Sep, 2021 5 commits
  10. 29 Sep, 2021 1 commit
    • moto's avatar
      Rename factory functions `wav2vec2_asr_ARCH` to `wav2vec2_ft_ARCH` (#1804) · 5c01c25f
      moto authored
      * Rename factory functions `wav2vec2_asr_ARCH` to `wav2vec2_ft_ARCH`
      
      In #1783, we split the factory functions of wav2vec2 into ones for pretraining models
      and ones for fine-tuning models (pretraining model + extra Linear module).
      
      I picked the name scheme `wav2vec2_asr_ARCH` for factory functions of fine-tuning models,
      but did not feel right, because the architecture code is more generic.
      Even though the resulting model architecture was used for  ASR fine-tuning in the paper, 
      it does not have to be ASR.
      This became more evident as we add pre-trained parameters support, such as #1799.
      It matters more for the weight files that for which task and on which dataset it was
      trained on. For factory function, ASR task is not relevant.
      
      Therefore renaming the functions by replacing `_asr_` to `_ft_` fine-tuning.
      
      Note: Since the new functions are not release yet, this PR itself is not BC-breaking.
      5c01c25f