Skip to content

About ceiling for calculating phoneme duration #11

Description

@reppy4620

Is there any reason to use torch.ceil instead of torch.round or other algorithms for calculating phoneme duration?

Thank you.

Activity

  1. XierHacker commented on Jun 28, 2021

    @XierHacker

    Is there any reason to use torch.ceil instead of torch.round or other algorithms for calculating phoneme duration?

    Thank you.

    if you got a duration 0.3, torch.ceil (0.3)=1, torch.round(0.3)=0.

  2. reppy4620 commented on Jun 28, 2021

    @reppy4620
    Author

    Thank you for your opinion.
    but as the implementation, minimum value of duration is 1 because torch.clamp_min is applied.

    an extreme case, if you got duration [1.1, 1.1, 1.1, ....], torch.ceil outputs [2, 2, 2, 2, 2....], so this duration is about 2 times longer than model expected.

  3. nshmyrev commented on Dec 11, 2024

    @nshmyrev

    Essentially what happens here - VITS duration predictor is not very good and often predicts very short duration for important phones, which causes very visible phone skips in audio. This ceil helps to hide this problem by pushing duration up, but still creates many problems with intonation. To match original length the sound has to be scaled down by a factor of approximately 0.9 and still you have irregular duration sometimes.

    The proper solution would be to improve duration predictor, then ceil can be replaced with round which leads to much better intonation (FAD reduces significantly) by this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions