ppp-svc-helper 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. ppp_svc_helper-0.1.0/LICENSE.md +21 -0
  2. ppp_svc_helper-0.1.0/PKG-INFO +26 -0
  3. ppp_svc_helper-0.1.0/README.md +9 -0
  4. ppp_svc_helper-0.1.0/ppp_svc_helper.egg-info/PKG-INFO +26 -0
  5. ppp_svc_helper-0.1.0/ppp_svc_helper.egg-info/SOURCES.txt +55 -0
  6. ppp_svc_helper-0.1.0/ppp_svc_helper.egg-info/dependency_links.txt +1 -0
  7. ppp_svc_helper-0.1.0/ppp_svc_helper.egg-info/top_level.txt +1 -0
  8. ppp_svc_helper-0.1.0/pyproject.toml +23 -0
  9. ppp_svc_helper-0.1.0/setup.cfg +4 -0
  10. ppp_svc_helper-0.1.0/setup.py +14 -0
  11. ppp_svc_helper-0.1.0/svc_helper/__init__.py +0 -0
  12. ppp_svc_helper-0.1.0/svc_helper/augmentation/__init__.py +0 -0
  13. ppp_svc_helper-0.1.0/svc_helper/augmentation/pedalboard.py +104 -0
  14. ppp_svc_helper-0.1.0/svc_helper/pitch/__init__.py +0 -0
  15. ppp_svc_helper-0.1.0/svc_helper/pitch/rmvpe.py +637 -0
  16. ppp_svc_helper-0.1.0/svc_helper/pitch/utils.py +9 -0
  17. ppp_svc_helper-0.1.0/svc_helper/sfeatures/__init__.py +0 -0
  18. ppp_svc_helper-0.1.0/svc_helper/sfeatures/models.py +132 -0
  19. ppp_svc_helper-0.1.0/svc_helper/sfeatures/whisper/__init__.py +0 -0
  20. ppp_svc_helper-0.1.0/svc_helper/sfeatures/whisper/audio.py +100 -0
  21. ppp_svc_helper-0.1.0/svc_helper/sfeatures/whisper/decoding.py +712 -0
  22. ppp_svc_helper-0.1.0/svc_helper/sfeatures/whisper/model.py +271 -0
  23. ppp_svc_helper-0.1.0/svc_helper/sfeatures/whisper/tokenizer.py +331 -0
  24. ppp_svc_helper-0.1.0/svc_helper/sfeatures/whisper/utils.py +163 -0
  25. ppp_svc_helper-0.1.0/svc_helper/svc/__init__.py +0 -0
  26. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/__init__.py +183 -0
  27. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/configs/__init__.py +0 -0
  28. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/configs/config.py +251 -0
  29. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/configs/v1/32k.json +46 -0
  30. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/configs/v1/40k.json +46 -0
  31. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/configs/v1/48k.json +46 -0
  32. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/configs/v2/32k.json +46 -0
  33. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/configs/v2/48k.json +46 -0
  34. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/__init__.py +0 -0
  35. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/audio.py +73 -0
  36. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/infer_pack/__init__.py +0 -0
  37. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/infer_pack/attentions.py +459 -0
  38. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/infer_pack/commons.py +172 -0
  39. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/infer_pack/models.py +1420 -0
  40. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/infer_pack/models_onnx.py +821 -0
  41. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/infer_pack/modules.py +615 -0
  42. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/infer_pack/onnx_inference.py +149 -0
  43. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/infer_pack/transforms.py +207 -0
  44. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/train/__init__.py +0 -0
  45. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/train/data_utils.py +518 -0
  46. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/train/losses.py +58 -0
  47. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/train/mel_processing.py +132 -0
  48. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/train/process_ckpt.py +261 -0
  49. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/lib/train/utils.py +478 -0
  50. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/modules/__init__.py +0 -0
  51. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/modules/vc/__init__.py +0 -0
  52. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/modules/vc/modules.py +388 -0
  53. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/modules/vc/pipeline.py +660 -0
  54. ppp_svc_helper-0.1.0/svc_helper/svc/rvc/modules/vc/utils.py +36 -0
  55. ppp_svc_helper-0.1.0/tests/test_pitch.py +20 -0
  56. ppp_svc_helper-0.1.0/tests/test_sfeatures.py +27 -0
  57. ppp_svc_helper-0.1.0/tests/test_svc.py +74 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 therealvul
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,26 @@
1
+ Metadata-Version: 2.4
2
+ Name: ppp_svc_helper
3
+ Version: 0.1.0
4
+ Summary: Utility library for singing voice conversion work
5
+ Author: effusiveperiscope
6
+ Author-email: therealvul <wowitsvul@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/pypa/sampleproject
9
+ Project-URL: Issues, https://github.com/pypa/sampleproject/issues
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.9
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE.md
15
+ Dynamic: author
16
+ Dynamic: license-file
17
+
18
+ # What is this
19
+ Contains various utilities for common SVC (singing voice conversion) data
20
+ tasks
21
+ based on popular singing voice conversion libraries--interfaces for
22
+ pitch extraction, speech feature extraction, singing voice conversion, data augmentation.
23
+
24
+ # Credits
25
+ * [RVC](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI)
26
+ * Black, Dawn A. A., Li, Ma and Tian, Mi. "Automatic Identification of Emotional Cues in Chinese Opera Singing", in Proc. of 13th Int. Conf. on Music Perception and Cognition and the 5th Conference for the Asian-Pacific Society for Cognitive Sciences of Music (ICMPC 13-APSC0M 5 2014), Seoul, South Korea, August 2014.
@@ -0,0 +1,9 @@
1
+ # What is this
2
+ Contains various utilities for common SVC (singing voice conversion) data
3
+ tasks
4
+ based on popular singing voice conversion libraries--interfaces for
5
+ pitch extraction, speech feature extraction, singing voice conversion, data augmentation.
6
+
7
+ # Credits
8
+ * [RVC](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI)
9
+ * Black, Dawn A. A., Li, Ma and Tian, Mi. "Automatic Identification of Emotional Cues in Chinese Opera Singing", in Proc. of 13th Int. Conf. on Music Perception and Cognition and the 5th Conference for the Asian-Pacific Society for Cognitive Sciences of Music (ICMPC 13-APSC0M 5 2014), Seoul, South Korea, August 2014.
@@ -0,0 +1,26 @@
1
+ Metadata-Version: 2.4
2
+ Name: ppp_svc_helper
3
+ Version: 0.1.0
4
+ Summary: Utility library for singing voice conversion work
5
+ Author: effusiveperiscope
6
+ Author-email: therealvul <wowitsvul@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/pypa/sampleproject
9
+ Project-URL: Issues, https://github.com/pypa/sampleproject/issues
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.9
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE.md
15
+ Dynamic: author
16
+ Dynamic: license-file
17
+
18
+ # What is this
19
+ Contains various utilities for common SVC (singing voice conversion) data
20
+ tasks
21
+ based on popular singing voice conversion libraries--interfaces for
22
+ pitch extraction, speech feature extraction, singing voice conversion, data augmentation.
23
+
24
+ # Credits
25
+ * [RVC](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI)
26
+ * Black, Dawn A. A., Li, Ma and Tian, Mi. "Automatic Identification of Emotional Cues in Chinese Opera Singing", in Proc. of 13th Int. Conf. on Music Perception and Cognition and the 5th Conference for the Asian-Pacific Society for Cognitive Sciences of Music (ICMPC 13-APSC0M 5 2014), Seoul, South Korea, August 2014.
@@ -0,0 +1,55 @@
1
+ LICENSE.md
2
+ README.md
3
+ pyproject.toml
4
+ setup.py
5
+ ppp_svc_helper.egg-info/PKG-INFO
6
+ ppp_svc_helper.egg-info/SOURCES.txt
7
+ ppp_svc_helper.egg-info/dependency_links.txt
8
+ ppp_svc_helper.egg-info/top_level.txt
9
+ svc_helper/__init__.py
10
+ svc_helper/augmentation/__init__.py
11
+ svc_helper/augmentation/pedalboard.py
12
+ svc_helper/pitch/__init__.py
13
+ svc_helper/pitch/rmvpe.py
14
+ svc_helper/pitch/utils.py
15
+ svc_helper/sfeatures/__init__.py
16
+ svc_helper/sfeatures/models.py
17
+ svc_helper/sfeatures/whisper/__init__.py
18
+ svc_helper/sfeatures/whisper/audio.py
19
+ svc_helper/sfeatures/whisper/decoding.py
20
+ svc_helper/sfeatures/whisper/model.py
21
+ svc_helper/sfeatures/whisper/tokenizer.py
22
+ svc_helper/sfeatures/whisper/utils.py
23
+ svc_helper/svc/__init__.py
24
+ svc_helper/svc/rvc/__init__.py
25
+ svc_helper/svc/rvc/configs/__init__.py
26
+ svc_helper/svc/rvc/configs/config.py
27
+ svc_helper/svc/rvc/configs/v1/32k.json
28
+ svc_helper/svc/rvc/configs/v1/40k.json
29
+ svc_helper/svc/rvc/configs/v1/48k.json
30
+ svc_helper/svc/rvc/configs/v2/32k.json
31
+ svc_helper/svc/rvc/configs/v2/48k.json
32
+ svc_helper/svc/rvc/lib/__init__.py
33
+ svc_helper/svc/rvc/lib/audio.py
34
+ svc_helper/svc/rvc/lib/infer_pack/__init__.py
35
+ svc_helper/svc/rvc/lib/infer_pack/attentions.py
36
+ svc_helper/svc/rvc/lib/infer_pack/commons.py
37
+ svc_helper/svc/rvc/lib/infer_pack/models.py
38
+ svc_helper/svc/rvc/lib/infer_pack/models_onnx.py
39
+ svc_helper/svc/rvc/lib/infer_pack/modules.py
40
+ svc_helper/svc/rvc/lib/infer_pack/onnx_inference.py
41
+ svc_helper/svc/rvc/lib/infer_pack/transforms.py
42
+ svc_helper/svc/rvc/lib/train/__init__.py
43
+ svc_helper/svc/rvc/lib/train/data_utils.py
44
+ svc_helper/svc/rvc/lib/train/losses.py
45
+ svc_helper/svc/rvc/lib/train/mel_processing.py
46
+ svc_helper/svc/rvc/lib/train/process_ckpt.py
47
+ svc_helper/svc/rvc/lib/train/utils.py
48
+ svc_helper/svc/rvc/modules/__init__.py
49
+ svc_helper/svc/rvc/modules/vc/__init__.py
50
+ svc_helper/svc/rvc/modules/vc/modules.py
51
+ svc_helper/svc/rvc/modules/vc/pipeline.py
52
+ svc_helper/svc/rvc/modules/vc/utils.py
53
+ tests/test_pitch.py
54
+ tests/test_sfeatures.py
55
+ tests/test_svc.py
@@ -0,0 +1 @@
1
+ svc_helper
@@ -0,0 +1,23 @@
1
+ [build-system]
2
+ requires = ["setuptools >= 77.0.3"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "ppp_svc_helper"
7
+ version = "0.1.0"
8
+ authors = [
9
+ { name="therealvul", email="wowitsvul@gmail.com" },
10
+ ]
11
+ description = "Utility library for singing voice conversion work"
12
+ readme = "README.md"
13
+ requires-python = ">=3.9"
14
+ classifiers = [
15
+ "Programming Language :: Python :: 3",
16
+ "Operating System :: OS Independent",
17
+ ]
18
+ license = "MIT"
19
+ license-files = ["LICEN[CS]E*"]
20
+
21
+ [project.urls]
22
+ Homepage = "https://github.com/pypa/sampleproject"
23
+ Issues = "https://github.com/pypa/sampleproject/issues"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,14 @@
1
+ import os
2
+ from setuptools import setup, find_packages
3
+
4
+ setup(
5
+ name="svc_helper",
6
+ version="0.1.0",
7
+ author="effusiveperiscope",
8
+ description = (""),
9
+ license="MIT",
10
+ packages=find_packages(exclude=['tests']),
11
+ package_data={
12
+ 'svc_helper': ['svc/rvc/configs/**/*.json']
13
+ }
14
+ )
File without changes
@@ -0,0 +1,104 @@
1
+ import pedalboard
2
+ import random
3
+ import numpy as np
4
+
5
+ def _randp(prob):
6
+ return (random.random() < prob)
7
+
8
+ # Randomly applies various pedalboard effects to audio
9
+ class PedalboardRandomAugmentor:
10
+ def __init__(self, probs : dict = {}):
11
+ """
12
+ Accepts a dictionary of probabilities for various augmentations (see code for details)
13
+ """
14
+ default_probs = {
15
+ 'base': 0.3, # probability of activating augmentation
16
+ 'clipping': 0.05,
17
+ 'comp_gentle': 0.2,
18
+ 'comp_hard': 0.2,
19
+ 'quiet': 0.2,
20
+ 'limit': 0.1,
21
+ 'resample_8k': 0.05,
22
+ 'resample_16k': 0.05,
23
+ 'resample_22k': 0.05,
24
+ 'resample_24k': 0.05,
25
+ 'reverb_short': 0.05,
26
+ 'reverb_long': 0.05,
27
+ 'delay_short': 0.05,
28
+ 'bitcrush_8': 0.1,
29
+ 'mp3_vbr2': 0.1,
30
+ 'mp3_vbr0': 0.1,
31
+ }
32
+ self.probs = default_probs
33
+ self.probs.update(probs)
34
+ self.clipper = pedalboard.Clipping()
35
+ self.comp_gentle = pedalboard.Compressor(
36
+ threshold_db=-6.0, ratio=1.5, attack_ms=60.0)
37
+ self.comp_hard = pedalboard.Compressor(
38
+ threshold_db=-24.0, ratio=3)
39
+ self.limit = pedalboard.Limiter(threshold_db=-6.0)
40
+ self.quiet = pedalboard.Gain(gain_db=-6.0)
41
+ self.resample_8k = pedalboard.Resample(target_sample_rate=8000.0,
42
+ quality=pedalboard.Resample.Quality.Linear)
43
+ self.resample_16k = pedalboard.Resample(target_sample_rate=16000.0,
44
+ quality=pedalboard.Resample.Quality.Linear)
45
+ self.resample_22k = pedalboard.Resample(target_sample_rate=22050.0,
46
+ quality=pedalboard.Resample.Quality.Linear)
47
+ self.resample_24k = pedalboard.Resample(target_sample_rate=24000.0,
48
+ quality=pedalboard.Resample.Quality.Linear)
49
+ self.reverb_short = pedalboard.Reverb(room_size = 0.1, wet_level = 0.1)
50
+ self.reverb_long = pedalboard.Reverb(room_size = 0.9, wet_level = 0.3)
51
+ self.delay_short = pedalboard.Delay(delay_seconds=0.05, feedback=0.3)
52
+ self.bitcrush_8 = pedalboard.Bitcrush(bit_depth=8)
53
+ self.mp3_vbr2 = pedalboard.MP3Compressor(vbr_quality=2.0)
54
+ self.mp3_vbr0 = pedalboard.MP3Compressor(vbr_quality=0.1)
55
+
56
+ def process(self, audio : np.ndarray, sr : float):
57
+ self.clipper.reset()
58
+ self.comp_gentle.reset()
59
+ self.comp_hard.reset()
60
+ self.limit.reset()
61
+ self.delay_short.reset()
62
+ self.reverb_short.reset()
63
+ self.reverb_long.reset()
64
+
65
+ if not _randp(self.probs['base']):
66
+ return audio
67
+
68
+ if _randp(self.probs['reverb_short']):
69
+ audio = self.reverb_short.process(audio, sr)
70
+ if _randp(self.probs['reverb_long']):
71
+ audio = self.reverb_long.process(audio, sr)
72
+
73
+ if _randp(self.probs['delay_short']):
74
+ audio = self.delay_short.process(audio, sr)
75
+
76
+ if _randp(self.probs['clipping']):
77
+ audio = self.clipper.process(audio, sr)
78
+ if _randp(self.probs['comp_gentle']):
79
+ audio = self.comp_gentle.process(audio, sr)
80
+ if _randp(self.probs['comp_hard']):
81
+ audio = self.comp_hard.process(audio, sr)
82
+ if _randp(self.probs['limit']):
83
+ audio = self.limit.process(audio, sr)
84
+
85
+ if _randp(self.probs['resample_8k']):
86
+ audio = self.resample_8k.process(audio, sr)
87
+ elif _randp(self.probs['resample_16k']):
88
+ audio = self.resample_16k.process(audio, sr)
89
+ elif _randp(self.probs['resample_22k']):
90
+ audio = self.resample_22k.process(audio, sr)
91
+ elif _randp(self.probs['resample_24k']):
92
+ audio = self.resample_24k.process(audio, sr)
93
+
94
+ if _randp(self.probs['bitcrush_8']):
95
+ audio = self.bitcrush_8.process(audio, sr)
96
+
97
+ if _randp(self.probs['mp3_vbr2']) and sr >= 32000 and sr <= 48000:
98
+ audio = self.mp3_vbr2.process(audio, sr)
99
+ if _randp(self.probs['mp3_vbr0']) and sr >= 32000 and sr <= 48000:
100
+ audio = self.mp3_vbr0.process(audio, sr)
101
+ if _randp(self.probs['quiet']):
102
+ audio = self.quiet.process(audio, sr)
103
+
104
+ return audio
File without changes