Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DiffSinger] Add tensor caching system #1093

Merged
merged 3 commits into from
Apr 20, 2024

Conversation

yqzhishen
Copy link
Contributor

@yqzhishen yqzhishen commented Apr 1, 2024

Motivation

Due to current limitations, the variance parameters in DiffSinger inference process cannot be shown, edited or persisted. However, this made DiffSinger unstable because real values of the parameters are re-genenrated each time their relative offsets are edited. Meanwhile, some voicebanks may use model weights that are exactly the same in their submodules across versions, so it is unnecessary (or unexpected, if this is a researching/benchmarking senario) to run inference repeatedly. Thus, making these intermediate variables persistent may improve the stability and reduce randomness.

Changes

This PR adds a tensor caching system for DiffSinger. With the caching system, same model weights and same input tensors will be guaranteed with the same outputs, regardless of how the model files are named, where they are placed and which voicebank they belong to. The caching system saves cache files with extension ".tensorcache" in the cache directory. The bahavior of reading and saving cache files can be manually disabled through Tools>Preferences>Cache>DiffSinger Tensor Cache.

@stakira stakira merged commit 893204e into stakira:master Apr 20, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants