phoonnx 0.0.0__py3-none-any.whl

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 (86) hide show
  1. phoonnx/__init__.py +0 -0
  2. phoonnx/config.py +490 -0
  3. phoonnx/locale/ca/phonetic_spellings.txt +2 -0
  4. phoonnx/locale/en/phonetic_spellings.txt +1 -0
  5. phoonnx/locale/gl/phonetic_spellings.txt +2 -0
  6. phoonnx/locale/pt/phonetic_spellings.txt +2 -0
  7. phoonnx/phoneme_ids.py +453 -0
  8. phoonnx/phonemizers/__init__.py +45 -0
  9. phoonnx/phonemizers/ar.py +42 -0
  10. phoonnx/phonemizers/base.py +216 -0
  11. phoonnx/phonemizers/en.py +250 -0
  12. phoonnx/phonemizers/fa.py +46 -0
  13. phoonnx/phonemizers/gl.py +142 -0
  14. phoonnx/phonemizers/he.py +67 -0
  15. phoonnx/phonemizers/ja.py +119 -0
  16. phoonnx/phonemizers/ko.py +97 -0
  17. phoonnx/phonemizers/mul.py +606 -0
  18. phoonnx/phonemizers/vi.py +44 -0
  19. phoonnx/phonemizers/zh.py +308 -0
  20. phoonnx/thirdparty/__init__.py +0 -0
  21. phoonnx/thirdparty/arpa2ipa.py +249 -0
  22. phoonnx/thirdparty/cotovia/cotovia_aarch64 +0 -0
  23. phoonnx/thirdparty/cotovia/cotovia_x86_64 +0 -0
  24. phoonnx/thirdparty/hangul2ipa.py +783 -0
  25. phoonnx/thirdparty/ko_tables/aspiration.csv +20 -0
  26. phoonnx/thirdparty/ko_tables/assimilation.csv +31 -0
  27. phoonnx/thirdparty/ko_tables/double_coda.csv +17 -0
  28. phoonnx/thirdparty/ko_tables/hanja.tsv +8525 -0
  29. phoonnx/thirdparty/ko_tables/ipa.csv +22 -0
  30. phoonnx/thirdparty/ko_tables/neutralization.csv +11 -0
  31. phoonnx/thirdparty/ko_tables/tensification.csv +56 -0
  32. phoonnx/thirdparty/ko_tables/yale.csv +22 -0
  33. phoonnx/thirdparty/kog2p/__init__.py +385 -0
  34. phoonnx/thirdparty/kog2p/rulebook.txt +212 -0
  35. phoonnx/thirdparty/mantoq/__init__.py +67 -0
  36. phoonnx/thirdparty/mantoq/buck/__init__.py +0 -0
  37. phoonnx/thirdparty/mantoq/buck/phonetise_buckwalter.py +569 -0
  38. phoonnx/thirdparty/mantoq/buck/symbols.py +64 -0
  39. phoonnx/thirdparty/mantoq/buck/tokenization.py +105 -0
  40. phoonnx/thirdparty/mantoq/num2words.py +37 -0
  41. phoonnx/thirdparty/mantoq/pyarabic/__init__.py +12 -0
  42. phoonnx/thirdparty/mantoq/pyarabic/arabrepr.py +64 -0
  43. phoonnx/thirdparty/mantoq/pyarabic/araby.py +1647 -0
  44. phoonnx/thirdparty/mantoq/pyarabic/named_const.py +227 -0
  45. phoonnx/thirdparty/mantoq/pyarabic/normalize.py +161 -0
  46. phoonnx/thirdparty/mantoq/pyarabic/number.py +826 -0
  47. phoonnx/thirdparty/mantoq/pyarabic/number_const.py +1704 -0
  48. phoonnx/thirdparty/mantoq/pyarabic/stack.py +52 -0
  49. phoonnx/thirdparty/mantoq/pyarabic/trans.py +517 -0
  50. phoonnx/thirdparty/mantoq/unicode_symbol2label.py +4173 -0
  51. phoonnx/thirdparty/tashkeel/LICENSE +22 -0
  52. phoonnx/thirdparty/tashkeel/SOURCE +1 -0
  53. phoonnx/thirdparty/tashkeel/__init__.py +212 -0
  54. phoonnx/thirdparty/tashkeel/hint_id_map.json +18 -0
  55. phoonnx/thirdparty/tashkeel/input_id_map.json +56 -0
  56. phoonnx/thirdparty/tashkeel/model.onnx +0 -0
  57. phoonnx/thirdparty/tashkeel/target_id_map.json +17 -0
  58. phoonnx/thirdparty/zh_num.py +238 -0
  59. phoonnx/util.py +705 -0
  60. phoonnx/version.py +6 -0
  61. phoonnx/voice.py +521 -0
  62. phoonnx-0.0.0.dist-info/METADATA +255 -0
  63. phoonnx-0.0.0.dist-info/RECORD +86 -0
  64. phoonnx-0.0.0.dist-info/WHEEL +5 -0
  65. phoonnx-0.0.0.dist-info/top_level.txt +2 -0
  66. phoonnx_train/__main__.py +151 -0
  67. phoonnx_train/export_onnx.py +109 -0
  68. phoonnx_train/norm_audio/__init__.py +92 -0
  69. phoonnx_train/norm_audio/trim.py +54 -0
  70. phoonnx_train/norm_audio/vad.py +54 -0
  71. phoonnx_train/preprocess.py +420 -0
  72. phoonnx_train/vits/__init__.py +0 -0
  73. phoonnx_train/vits/attentions.py +427 -0
  74. phoonnx_train/vits/commons.py +147 -0
  75. phoonnx_train/vits/config.py +330 -0
  76. phoonnx_train/vits/dataset.py +214 -0
  77. phoonnx_train/vits/lightning.py +352 -0
  78. phoonnx_train/vits/losses.py +58 -0
  79. phoonnx_train/vits/mel_processing.py +139 -0
  80. phoonnx_train/vits/models.py +732 -0
  81. phoonnx_train/vits/modules.py +527 -0
  82. phoonnx_train/vits/monotonic_align/__init__.py +20 -0
  83. phoonnx_train/vits/monotonic_align/setup.py +13 -0
  84. phoonnx_train/vits/transforms.py +212 -0
  85. phoonnx_train/vits/utils.py +16 -0
  86. phoonnx_train/vits/wavfile.py +860 -0
@@ -0,0 +1,255 @@
1
+ Metadata-Version: 2.1
2
+ Name: phoonnx
3
+ Version: 0.0.0
4
+ Home-page: https://github.com/TigreGotico/phoonnx
5
+ Author: JarbasAi
6
+ Author-email: jarbasai@mailfence.com
7
+ Requires-Dist: numpy
8
+ Requires-Dist: onnxruntime
9
+ Requires-Dist: quebra-frases
10
+ Requires-Dist: langcodes
11
+ Requires-Dist: ovos-number-parser>=0.3.3a1
12
+ Requires-Dist: ovos-date-parser>=0.6.4a1
13
+ Provides-Extra: aa
14
+ Requires-Dist: epitran; extra == "aa"
15
+ Provides-Extra: aii
16
+ Requires-Dist: epitran; extra == "aii"
17
+ Provides-Extra: am
18
+ Requires-Dist: epitran; extra == "am"
19
+ Provides-Extra: ar
20
+ Requires-Dist: gruut[ar]<3.0,>=2.3.0; extra == "ar"
21
+ Requires-Dist: epitran; extra == "ar"
22
+ Provides-Extra: av
23
+ Requires-Dist: epitran; extra == "av"
24
+ Provides-Extra: az
25
+ Requires-Dist: epitran; extra == "az"
26
+ Provides-Extra: bn
27
+ Requires-Dist: epitran; extra == "bn"
28
+ Provides-Extra: ca
29
+ Requires-Dist: gruut[ca]<3.0,>=2.3.0; extra == "ca"
30
+ Requires-Dist: epitran; extra == "ca"
31
+ Provides-Extra: ceb
32
+ Requires-Dist: epitran; extra == "ceb"
33
+ Provides-Extra: cjy
34
+ Requires-Dist: epitran; extra == "cjy"
35
+ Provides-Extra: ckb
36
+ Requires-Dist: epitran; extra == "ckb"
37
+ Provides-Extra: cs
38
+ Requires-Dist: gruut[cs]<3.0,>=2.3.0; extra == "cs"
39
+ Requires-Dist: epitran; extra == "cs"
40
+ Provides-Extra: csb
41
+ Requires-Dist: epitran; extra == "csb"
42
+ Provides-Extra: de
43
+ Requires-Dist: gruut[de]<3.0,>=2.3.0; extra == "de"
44
+ Requires-Dist: epitran; extra == "de"
45
+ Provides-Extra: en
46
+ Requires-Dist: epitran; extra == "en"
47
+ Requires-Dist: gruut[en]<3.0,>=2.3.0; extra == "en"
48
+ Requires-Dist: misaki[en]; extra == "en"
49
+ Provides-Extra: eo
50
+ Requires-Dist: epitran; extra == "eo"
51
+ Provides-Extra: es
52
+ Requires-Dist: gruut[es]<3.0,>=2.3.0; extra == "es"
53
+ Requires-Dist: epitran; extra == "es"
54
+ Provides-Extra: et
55
+ Requires-Dist: epitran; extra == "et"
56
+ Provides-Extra: eu
57
+ Requires-Dist: epitran; extra == "eu"
58
+ Provides-Extra: fa
59
+ Requires-Dist: persian-phonemizer; extra == "fa"
60
+ Requires-Dist: gruut[fa]<3.0,>=2.3.0; extra == "fa"
61
+ Requires-Dist: epitran; extra == "fa"
62
+ Provides-Extra: ff
63
+ Requires-Dist: epitran; extra == "ff"
64
+ Provides-Extra: fi
65
+ Requires-Dist: epitran; extra == "fi"
66
+ Provides-Extra: fil
67
+ Requires-Dist: epitran; extra == "fil"
68
+ Provides-Extra: fr
69
+ Requires-Dist: gruut[fr]<3.0,>=2.3.0; extra == "fr"
70
+ Requires-Dist: epitran; extra == "fr"
71
+ Provides-Extra: gan
72
+ Requires-Dist: epitran; extra == "gan"
73
+ Provides-Extra: gl
74
+ Requires-Dist: epitran; extra == "gl"
75
+ Provides-Extra: got
76
+ Requires-Dist: epitran; extra == "got"
77
+ Provides-Extra: ha
78
+ Requires-Dist: epitran; extra == "ha"
79
+ Provides-Extra: hak
80
+ Requires-Dist: epitran; extra == "hak"
81
+ Provides-Extra: he
82
+ Requires-Dist: phonikud-onnx; extra == "he"
83
+ Requires-Dist: phonikud; extra == "he"
84
+ Provides-Extra: hi
85
+ Requires-Dist: epitran; extra == "hi"
86
+ Provides-Extra: hmn
87
+ Requires-Dist: epitran; extra == "hmn"
88
+ Provides-Extra: hr
89
+ Requires-Dist: epitran; extra == "hr"
90
+ Provides-Extra: hsn
91
+ Requires-Dist: epitran; extra == "hsn"
92
+ Provides-Extra: hu
93
+ Requires-Dist: epitran; extra == "hu"
94
+ Provides-Extra: id
95
+ Requires-Dist: epitran; extra == "id"
96
+ Provides-Extra: ilo
97
+ Requires-Dist: epitran; extra == "ilo"
98
+ Provides-Extra: it
99
+ Requires-Dist: gruut[it]<3.0,>=2.3.0; extra == "it"
100
+ Requires-Dist: epitran; extra == "it"
101
+ Provides-Extra: ja
102
+ Requires-Dist: pyopenjtalk; extra == "ja"
103
+ Requires-Dist: pykakasi; extra == "ja"
104
+ Requires-Dist: cutlet; extra == "ja"
105
+ Requires-Dist: unidic-lite; extra == "ja"
106
+ Requires-Dist: misaki[ja]; extra == "ja"
107
+ Provides-Extra: jam
108
+ Requires-Dist: epitran; extra == "jam"
109
+ Provides-Extra: jv
110
+ Requires-Dist: epitran; extra == "jv"
111
+ Provides-Extra: ka
112
+ Requires-Dist: epitran; extra == "ka"
113
+ Provides-Extra: kbd
114
+ Requires-Dist: epitran; extra == "kbd"
115
+ Provides-Extra: kk
116
+ Requires-Dist: epitran; extra == "kk"
117
+ Provides-Extra: km
118
+ Requires-Dist: epitran; extra == "km"
119
+ Provides-Extra: ko
120
+ Requires-Dist: g2pk; extra == "ko"
121
+ Requires-Dist: epitran; extra == "ko"
122
+ Requires-Dist: misaki[ko]; extra == "ko"
123
+ Provides-Extra: ku
124
+ Requires-Dist: epitran; extra == "ku"
125
+ Provides-Extra: ky
126
+ Requires-Dist: epitran; extra == "ky"
127
+ Provides-Extra: lb
128
+ Requires-Dist: gruut[lb]<3.0,>=2.3.0; extra == "lb"
129
+ Provides-Extra: lez
130
+ Requires-Dist: epitran; extra == "lez"
131
+ Provides-Extra: lij
132
+ Requires-Dist: epitran; extra == "lij"
133
+ Provides-Extra: lo
134
+ Requires-Dist: epitran; extra == "lo"
135
+ Provides-Extra: lsm
136
+ Requires-Dist: epitran; extra == "lsm"
137
+ Provides-Extra: lt
138
+ Requires-Dist: epitran; extra == "lt"
139
+ Provides-Extra: luy
140
+ Requires-Dist: epitran; extra == "luy"
141
+ Provides-Extra: lv
142
+ Requires-Dist: epitran; extra == "lv"
143
+ Provides-Extra: mi
144
+ Requires-Dist: epitran; extra == "mi"
145
+ Provides-Extra: ml
146
+ Requires-Dist: epitran; extra == "ml"
147
+ Provides-Extra: mr
148
+ Requires-Dist: epitran; extra == "mr"
149
+ Provides-Extra: ms
150
+ Requires-Dist: epitran; extra == "ms"
151
+ Provides-Extra: mt
152
+ Requires-Dist: epitran; extra == "mt"
153
+ Provides-Extra: my
154
+ Requires-Dist: epitran; extra == "my"
155
+ Provides-Extra: nan
156
+ Requires-Dist: epitran; extra == "nan"
157
+ Provides-Extra: nl
158
+ Requires-Dist: gruut[nl]<3.0,>=2.3.0; extra == "nl"
159
+ Provides-Extra: ny
160
+ Requires-Dist: epitran; extra == "ny"
161
+ Provides-Extra: om
162
+ Requires-Dist: epitran; extra == "om"
163
+ Provides-Extra: or
164
+ Requires-Dist: epitran; extra == "or"
165
+ Provides-Extra: pa
166
+ Requires-Dist: epitran; extra == "pa"
167
+ Provides-Extra: pl
168
+ Requires-Dist: epitran; extra == "pl"
169
+ Provides-Extra: pt
170
+ Requires-Dist: gruut[pt]<3.0,>=2.3.0; extra == "pt"
171
+ Requires-Dist: epitran; extra == "pt"
172
+ Provides-Extra: quy
173
+ Requires-Dist: epitran; extra == "quy"
174
+ Provides-Extra: rn
175
+ Requires-Dist: epitran; extra == "rn"
176
+ Provides-Extra: ro
177
+ Requires-Dist: epitran; extra == "ro"
178
+ Provides-Extra: ru
179
+ Requires-Dist: gruut[ru]<3.0,>=2.3.0; extra == "ru"
180
+ Requires-Dist: epitran; extra == "ru"
181
+ Provides-Extra: rw
182
+ Requires-Dist: epitran; extra == "rw"
183
+ Provides-Extra: sg
184
+ Requires-Dist: epitran; extra == "sg"
185
+ Provides-Extra: si
186
+ Requires-Dist: epitran; extra == "si"
187
+ Provides-Extra: sn
188
+ Requires-Dist: epitran; extra == "sn"
189
+ Provides-Extra: so
190
+ Requires-Dist: epitran; extra == "so"
191
+ Provides-Extra: sq
192
+ Requires-Dist: epitran; extra == "sq"
193
+ Provides-Extra: sr
194
+ Requires-Dist: epitran; extra == "sr"
195
+ Provides-Extra: sv
196
+ Requires-Dist: gruut[sv]<3.0,>=2.3.0; extra == "sv"
197
+ Requires-Dist: epitran; extra == "sv"
198
+ Provides-Extra: sw
199
+ Requires-Dist: gruut[sw]<3.0,>=2.3.0; extra == "sw"
200
+ Requires-Dist: epitran; extra == "sw"
201
+ Provides-Extra: ta
202
+ Requires-Dist: epitran; extra == "ta"
203
+ Provides-Extra: te
204
+ Requires-Dist: epitran; extra == "te"
205
+ Provides-Extra: tg
206
+ Requires-Dist: epitran; extra == "tg"
207
+ Provides-Extra: th
208
+ Requires-Dist: epitran; extra == "th"
209
+ Provides-Extra: ti
210
+ Requires-Dist: epitran; extra == "ti"
211
+ Provides-Extra: tk
212
+ Requires-Dist: epitran; extra == "tk"
213
+ Provides-Extra: tpi
214
+ Requires-Dist: epitran; extra == "tpi"
215
+ Provides-Extra: tr
216
+ Requires-Dist: epitran; extra == "tr"
217
+ Provides-Extra: uew
218
+ Requires-Dist: epitran; extra == "uew"
219
+ Provides-Extra: ug
220
+ Requires-Dist: epitran; extra == "ug"
221
+ Provides-Extra: uk
222
+ Requires-Dist: epitran; extra == "uk"
223
+ Provides-Extra: ur
224
+ Requires-Dist: epitran; extra == "ur"
225
+ Provides-Extra: uz
226
+ Requires-Dist: epitran; extra == "uz"
227
+ Provides-Extra: vi
228
+ Requires-Dist: misaki[vi]; extra == "vi"
229
+ Requires-Dist: epitran; extra == "vi"
230
+ Requires-Dist: viphoneme; extra == "vi"
231
+ Requires-Dist: underthesea; extra == "vi"
232
+ Requires-Dist: eng-to-ipa; extra == "vi"
233
+ Requires-Dist: vinorm; extra == "vi"
234
+ Provides-Extra: wuu
235
+ Requires-Dist: epitran; extra == "wuu"
236
+ Provides-Extra: xh
237
+ Requires-Dist: epitran; extra == "xh"
238
+ Provides-Extra: yo
239
+ Requires-Dist: epitran; extra == "yo"
240
+ Provides-Extra: yue
241
+ Requires-Dist: epitran; extra == "yue"
242
+ Provides-Extra: za
243
+ Requires-Dist: epitran; extra == "za"
244
+ Provides-Extra: zh
245
+ Requires-Dist: g2pM; extra == "zh"
246
+ Requires-Dist: misaki[zh]; extra == "zh"
247
+ Requires-Dist: epitran; extra == "zh"
248
+ Requires-Dist: pypinyin; extra == "zh"
249
+ Requires-Dist: xpinyin; extra == "zh"
250
+ Requires-Dist: pinyin-to-ipa; extra == "zh"
251
+ Requires-Dist: jieba; extra == "zh"
252
+ Requires-Dist: cn2an; extra == "zh"
253
+ Provides-Extra: zu
254
+ Requires-Dist: epitran; extra == "zu"
255
+
@@ -0,0 +1,86 @@
1
+ phoonnx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ phoonnx/config.py,sha256=bO7dx2tfLotkohict3UKlCEVm-BRFB1feYYR1HarUkk,19382
3
+ phoonnx/phoneme_ids.py,sha256=FiNgZwV6naEsBh6XwFLh3_FyOgPiCsK9qo7S0v-CmI4,13667
4
+ phoonnx/util.py,sha256=3DqSRwsF498oP_uFVZnriP9PyjXhCfEy97Ey0ePTEqA,25042
5
+ phoonnx/version.py,sha256=peYHqopxd1W3l3PTIN2GzerAUX8Su-_tfbPZbZ4og3o,114
6
+ phoonnx/voice.py,sha256=FR_LafK1vSi_anPERJjZBuH3Bb9vUIof0MAW6TnALlA,20024
7
+ phoonnx/locale/ca/phonetic_spellings.txt,sha256=igv3t7jxLSRE5GHsdn57HOpxiWNcEmECPql6m02wbO0,47
8
+ phoonnx/locale/en/phonetic_spellings.txt,sha256=xGQlWOABLzbttpQvopl9CU-NnwEJRqKx8iuylsdUoQA,27
9
+ phoonnx/locale/gl/phonetic_spellings.txt,sha256=igv3t7jxLSRE5GHsdn57HOpxiWNcEmECPql6m02wbO0,47
10
+ phoonnx/locale/pt/phonetic_spellings.txt,sha256=KntS8QMynEJ5A3Clvcjq4qlmL-ThSbhfD6v0nKSrlqs,49
11
+ phoonnx/phonemizers/__init__.py,sha256=QGBZk0QUgJdg2MwUWY9Kpk6ucwrEJYtHb07YcNvXCV4,1647
12
+ phoonnx/phonemizers/ar.py,sha256=W3wJ_GI8gV3qb9fng5xeazX8ZlY-aNSywATTdxryiZg,1257
13
+ phoonnx/phonemizers/base.py,sha256=yPg6-dvscYpl3rR3JEULG1PRF-i8DWC_C3HAZGLbxOo,7648
14
+ phoonnx/phonemizers/en.py,sha256=N2SVoVhplQao7Ej5TXbxJU-YkAgkY0Fr9iYBFnsjFSE,9271
15
+ phoonnx/phonemizers/fa.py,sha256=d_DZM2wqomf4gcRH_rFcNA3VkQWKHru8vwBwaNG8Ll8,1452
16
+ phoonnx/phonemizers/gl.py,sha256=05DX_9lQa3Uws3RPcWPtw0nXX6Vo3bybrZkpMErguTo,5529
17
+ phoonnx/phonemizers/he.py,sha256=KbRI3XRZa8UtJdNWmn_fd-t5lmFSIp4Mw8UgcO5l-Po,2211
18
+ phoonnx/phonemizers/ja.py,sha256=Xojsrt715ihnIiEk9K6giYqDo9Iykw-SHfIidrHtHSU,3834
19
+ phoonnx/phonemizers/ko.py,sha256=kwWoOFqanCB8kv2JRx17A0hP78P1wbXlX6e8VBn1ezQ,2989
20
+ phoonnx/phonemizers/mul.py,sha256=37G_G58aGnVpdEm9vZEAOdGEHJ9TLBE17bU1HFvQ2rU,27291
21
+ phoonnx/phonemizers/vi.py,sha256=_XJc-Xeawr1Lxr7o8mE_hJao1aGcj4g01XYAOxC_Scg,1311
22
+ phoonnx/phonemizers/zh.py,sha256=88Ywq8h9LDanlyz8RHjRSCY_PRK_Dq808tBADyrgaP8,9657
23
+ phoonnx/thirdparty/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ phoonnx/thirdparty/arpa2ipa.py,sha256=Uj1G5NgP5oBBfSm26LGB8QoumdT-NqCLQTZHT165-_o,5850
25
+ phoonnx/thirdparty/hangul2ipa.py,sha256=e2c0WOy5lFMcf6GS7pNqIbauMKBX07S84lCczZAZJGA,27518
26
+ phoonnx/thirdparty/zh_num.py,sha256=SESA6gvSJW3LZ0FLoybXn2SpbxqhQTi9Tg_U2IZ5JYY,7147
27
+ phoonnx/thirdparty/cotovia/cotovia_aarch64,sha256=BsAWZN452Lm9kDU4i6rQGHFSlmxP3GfHRKhbJMUQrfA,6764592
28
+ phoonnx/thirdparty/cotovia/cotovia_x86_64,sha256=-6BNx_cd49nnDreOAsGtVtePs_X76esrqcNAfmksN1o,1379832
29
+ phoonnx/thirdparty/ko_tables/aspiration.csv,sha256=Dg3W1rr3qe9DDEMSFx5tIIg-WbqOZw9vO1Skg7q2Pmo,219
30
+ phoonnx/thirdparty/ko_tables/assimilation.csv,sha256=WJYLvUitjzAptAw06X620t0Rd25-GU_GRVf8IeaQ_tM,430
31
+ phoonnx/thirdparty/ko_tables/double_coda.csv,sha256=BNr5coYgzNN_P3DmV1Dtj6-UUqlFoe1oC-IiATHBi48,253
32
+ phoonnx/thirdparty/ko_tables/hanja.tsv,sha256=Spwa87HqgCh_sD6xskJLq6A3Sw9AVBFtTloqk7udC6M,93835
33
+ phoonnx/thirdparty/ko_tables/ipa.csv,sha256=y_MFDCmCsJJ-Szu-3xjqXUvydBCVEr4muWsPzRN8aTU,316
34
+ phoonnx/thirdparty/ko_tables/neutralization.csv,sha256=XKgdPy5G7wHXflnThUimDYX-7RwGuJfMZesWl4w44sA,90
35
+ phoonnx/thirdparty/ko_tables/tensification.csv,sha256=V4Xf3A1G1iMBzwZevBKQuk_lPa-U7a7Ra__mz3d3VpQ,780
36
+ phoonnx/thirdparty/ko_tables/yale.csv,sha256=UhtDbPXRAAyAKoQMXmwhVBwJ5pfZQ_Duk28qBtRUdsU,297
37
+ phoonnx/thirdparty/kog2p/__init__.py,sha256=yLizadg7RXM-3dQyftD4XSk8r2jb0QOlHQ6as9uUa4U,10267
38
+ phoonnx/thirdparty/kog2p/rulebook.txt,sha256=FQE3nej8wojl6ilVUBYo7f8bIk0Hjci-B7HPXhM-xNc,9303
39
+ phoonnx/thirdparty/mantoq/__init__.py,sha256=4kZuZ3RA5ZhQwTOQGkHF9jQYSvetNTn9uWi5Dsx101k,2106
40
+ phoonnx/thirdparty/mantoq/num2words.py,sha256=9-ncMtxV1FusD9rNur1lu7l2DWhwUwI1mFiqiPSMH_Q,1264
41
+ phoonnx/thirdparty/mantoq/unicode_symbol2label.py,sha256=CeZNv7qWeQS4Ejvz-sKgK--5eNYdVVv04WHPaOeK4gk,259409
42
+ phoonnx/thirdparty/mantoq/buck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
+ phoonnx/thirdparty/mantoq/buck/phonetise_buckwalter.py,sha256=QE2ADBH0HdnGpS6LY5zMqMyobgrVtG3ZDGs1HvbZ9XA,20253
44
+ phoonnx/thirdparty/mantoq/buck/symbols.py,sha256=AoH1kbTVE-0t16CfAEKopIEU0FVAYV3ZRxRJ_i20CFA,1096
45
+ phoonnx/thirdparty/mantoq/buck/tokenization.py,sha256=RyMzu5TLAYy_GybL9GjltwEOPh5iEvoNPpE5fviYbQU,2276
46
+ phoonnx/thirdparty/mantoq/pyarabic/__init__.py,sha256=zTb5JNfQuVye-WlcEmBET25d-Ub4N3Ijk9mCHAD3CLE,226
47
+ phoonnx/thirdparty/mantoq/pyarabic/arabrepr.py,sha256=kKKZyElV9dtWKeYqwIWsUovbK5x8J7kbFKnv2QIwhtk,1757
48
+ phoonnx/thirdparty/mantoq/pyarabic/araby.py,sha256=8kDPpnMKDMOI63h83V7jyCHvn4K2TJjMAhfv4o3NZr4,44797
49
+ phoonnx/thirdparty/mantoq/pyarabic/named_const.py,sha256=CtT5PGSwBYUombw8MkdyW6tu8G3-ghuIK2sd-4y37X4,4455
50
+ phoonnx/thirdparty/mantoq/pyarabic/normalize.py,sha256=iaTyTOWHNc38Ov2hgOkD0zDJmWM-kUoEba21es6CpJ8,4845
51
+ phoonnx/thirdparty/mantoq/pyarabic/number.py,sha256=NjFZPWRu-9dZDLgxfv9oDjmh-kWYkaUGntPQC7iT5mQ,27041
52
+ phoonnx/thirdparty/mantoq/pyarabic/number_const.py,sha256=vAvRVENxTrl9gWPllSXF-yqK9fAW6htuA2d041btC_A,42361
53
+ phoonnx/thirdparty/mantoq/pyarabic/stack.py,sha256=aJeSzQxVNdomDTWXuxIXWXVOc2BW_3iRWnwmBLkB8jM,1022
54
+ phoonnx/thirdparty/mantoq/pyarabic/trans.py,sha256=cusyHk9Y01iuvMLJXxgCnIiGyAORzEdSosDKX4cAhPc,13713
55
+ phoonnx/thirdparty/tashkeel/LICENSE,sha256=mQjTJ6MGAXzmYkO7x4O2VuEeSwCMx7lncbc26TnrVjw,1067
56
+ phoonnx/thirdparty/tashkeel/SOURCE,sha256=SmnRz-Am5EXv-n2-RokJVEhnn8zeF1QZJVvMQDA_Qds,38
57
+ phoonnx/thirdparty/tashkeel/__init__.py,sha256=FRdGNCTQaai9X077vlNh4tFOvWgm1U2lIUgnQKO5q0s,7119
58
+ phoonnx/thirdparty/tashkeel/hint_id_map.json,sha256=gJMdtTsfEDFgmmbyO2Shw315rkqKTHhQI3KGNqf6k-U,193
59
+ phoonnx/thirdparty/tashkeel/input_id_map.json,sha256=cnpJqjx-k53AbzKyfC4GxMS771ltzkv1EnYmHKc2w8M,628
60
+ phoonnx/thirdparty/tashkeel/model.onnx,sha256=UsQNQsoJT_n_B6CR0KHq_XuqXPI4jmCpzIm6zY5elV8,4788213
61
+ phoonnx/thirdparty/tashkeel/target_id_map.json,sha256=baNAJL_UwP9U91mLt01aAEBRRNdGr-csFB_O6roh7TA,181
62
+ phoonnx_train/__main__.py,sha256=FUAIsbQ-w2i_hoNiBuriQFk4uoryhL4ydyVY-hVjw1U,5086
63
+ phoonnx_train/export_onnx.py,sha256=dcFJRZl4YvBk_Dj3j0aNAQVEqKfBHTzV22pzvQwSETQ,2909
64
+ phoonnx_train/preprocess.py,sha256=0kto9Holywby6lnoQucBXq2wYEKDItRvdkvYbQnLJeo,14447
65
+ phoonnx_train/norm_audio/__init__.py,sha256=Al_YwqMnENXRWp0c79cDZqbdd7pFYARXKxCfBaedr1c,3030
66
+ phoonnx_train/norm_audio/trim.py,sha256=_ZsE3SYhahQSdEdBLeSwyFJGcvEbt-5E_lnWwTT4tcY,1698
67
+ phoonnx_train/norm_audio/vad.py,sha256=DXHfRD0qqFJ52FjPvrL5LlN6keJWuc9Nf6TNhxpwC_4,1600
68
+ phoonnx_train/vits/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ phoonnx_train/vits/attentions.py,sha256=yc_ViF8zR8z68DzphmVVVn27f9xK_5wi8S4ITLXVQL0,15134
70
+ phoonnx_train/vits/commons.py,sha256=JsD8CdZ3ZcYYubYhw8So5hICBziFlCrKLrv1lMDRCDM,4645
71
+ phoonnx_train/vits/config.py,sha256=oSuUIhw9Am7BQ5JwDgtCO-P1zRyN7nPgR-U1XuncJls,10789
72
+ phoonnx_train/vits/dataset.py,sha256=DLLGSCkn3GF9uktoTprH1ERblZ18GO6-QsClQKWa98o,6804
73
+ phoonnx_train/vits/lightning.py,sha256=iJJNAT1-jm0wYvTfBy9T_eZapDN62Pny9YdHEpnApso,12298
74
+ phoonnx_train/vits/losses.py,sha256=j-uINhBcYxVXFvFutiewQpTuw-qF-J6M6hdJVeOKqNE,1401
75
+ phoonnx_train/vits/mel_processing.py,sha256=huIjbQgewSmM39hdzRZvZUCI7fTNSMmLcAv3f8zYb8k,3956
76
+ phoonnx_train/vits/models.py,sha256=9PziprRtkdBQ6AowFe1vG4QTCk02By-LDS9W8EtZGvE,24303
77
+ phoonnx_train/vits/modules.py,sha256=DMNev5g23gkSq1EP0GR-jDI30Dvoy335k4q4zYKO1Y0,16880
78
+ phoonnx_train/vits/transforms.py,sha256=On8hI8WPD6noP_X0RKrGv5FzJ7bnmFVGlC-SJ_UuAY0,7457
79
+ phoonnx_train/vits/utils.py,sha256=exiyrtPHbnnGvcHWSbaH9-gR6srH5ZPHlKiqV2IHUrQ,491
80
+ phoonnx_train/vits/wavfile.py,sha256=oQZiTIrdw0oLTbcVwKfGXye1WtKte6qK_52qVwiMvfc,26396
81
+ phoonnx_train/vits/monotonic_align/__init__.py,sha256=5IdAOD1Z7UloMb6d_9NRFsXoNIjEQ3h9mvOSh_AtO3k,636
82
+ phoonnx_train/vits/monotonic_align/setup.py,sha256=0K5iJJ2mKIklx6ncEfCQS34skm5hHPiz9vRlQEvevvY,266
83
+ phoonnx-0.0.0.dist-info/METADATA,sha256=403yc0XWgga5G22oBJb9xTb2kEfYVKRcI1O7rCnYOls,7866
84
+ phoonnx-0.0.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
85
+ phoonnx-0.0.0.dist-info/top_level.txt,sha256=ZrnHXe-4HqbOSX6fbdY-JiP7YEu2Bok9T0ji351MrmM,22
86
+ phoonnx-0.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.45.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ phoonnx
2
+ phoonnx_train
@@ -0,0 +1,151 @@
1
+ import argparse
2
+ import json
3
+ import logging
4
+ from pathlib import Path
5
+
6
+ import torch
7
+ from pytorch_lightning import Trainer
8
+ from pytorch_lightning.callbacks import ModelCheckpoint
9
+
10
+ from phoonnx_train.vits.lightning import VitsModel
11
+
12
+ _LOGGER = logging.getLogger(__package__)
13
+
14
+
15
+ def main():
16
+ logging.basicConfig(level=logging.DEBUG)
17
+
18
+ parser = argparse.ArgumentParser()
19
+ parser.add_argument(
20
+ "--dataset-dir", required=True, help="Path to pre-processed dataset directory"
21
+ )
22
+ parser.add_argument(
23
+ "--checkpoint-epochs",
24
+ type=int,
25
+ help="Save checkpoint every N epochs (default: 1)",
26
+ )
27
+ parser.add_argument(
28
+ "--quality",
29
+ default="medium",
30
+ choices=("x-low", "medium", "high"),
31
+ help="Quality/size of model (default: medium)",
32
+ )
33
+ parser.add_argument(
34
+ "--resume_from_single_speaker_checkpoint",
35
+ help="For multi-speaker models only. Converts a single-speaker checkpoint to multi-speaker and resumes training",
36
+ )
37
+ Trainer.add_argparse_args(parser)
38
+ VitsModel.add_model_specific_args(parser)
39
+ parser.add_argument("--seed", type=int, default=1234)
40
+ args = parser.parse_args()
41
+ _LOGGER.debug(args)
42
+
43
+ args.dataset_dir = Path(args.dataset_dir)
44
+ if not args.default_root_dir:
45
+ args.default_root_dir = args.dataset_dir
46
+
47
+ torch.backends.cudnn.benchmark = True
48
+ torch.manual_seed(args.seed)
49
+
50
+ config_path = args.dataset_dir / "config.json"
51
+ dataset_path = args.dataset_dir / "dataset.jsonl"
52
+
53
+ print(f"INFO - config_path: '{config_path}'")
54
+ print(f"INFO - dataset_path: '{dataset_path}'")
55
+
56
+ with open(config_path, "r", encoding="utf-8") as config_file:
57
+ # See preprocess.py for format
58
+ config = json.load(config_file)
59
+ num_symbols = int(config["num_symbols"])
60
+ num_speakers = int(config["num_speakers"])
61
+ sample_rate = int(config["audio"]["sample_rate"])
62
+
63
+ trainer = Trainer.from_argparse_args(args)
64
+ if args.checkpoint_epochs is not None:
65
+ trainer.callbacks = [ModelCheckpoint(every_n_epochs=args.checkpoint_epochs)]
66
+ _LOGGER.info(
67
+ "Checkpoints will be saved every %s epoch(s)", args.checkpoint_epochs
68
+ )
69
+
70
+ dict_args = vars(args)
71
+ if args.quality == "x-low":
72
+ dict_args["hidden_channels"] = 96
73
+ dict_args["inter_channels"] = 96
74
+ dict_args["filter_channels"] = 384
75
+ elif args.quality == "high":
76
+ dict_args["resblock"] = "1"
77
+ dict_args["resblock_kernel_sizes"] = (3, 7, 11)
78
+ dict_args["resblock_dilation_sizes"] = (
79
+ (1, 3, 5),
80
+ (1, 3, 5),
81
+ (1, 3, 5),
82
+ )
83
+ dict_args["upsample_rates"] = (8, 8, 2, 2)
84
+ dict_args["upsample_initial_channel"] = 512
85
+ dict_args["upsample_kernel_sizes"] = (16, 16, 4, 4)
86
+
87
+ print(f"VitsModel params: num_symbols={num_symbols} num_speakers={num_speakers} sample_rate={sample_rate}")
88
+ model = VitsModel(
89
+ num_symbols=num_symbols,
90
+ num_speakers=num_speakers,
91
+ sample_rate=sample_rate,
92
+ dataset=[dataset_path],
93
+ **dict_args,
94
+ )
95
+
96
+ if args.resume_from_single_speaker_checkpoint:
97
+ assert (
98
+ num_speakers > 1
99
+ ), "--resume_from_single_speaker_checkpoint is only for multi-speaker models. Use --resume_from_checkpoint for single-speaker models."
100
+
101
+ # Load single-speaker checkpoint
102
+ _LOGGER.info(
103
+ "Resuming from single-speaker checkpoint: %s",
104
+ args.resume_from_single_speaker_checkpoint,
105
+ )
106
+ model_single = VitsModel.load_from_checkpoint(
107
+ args.resume_from_single_speaker_checkpoint,
108
+ dataset=None,
109
+ )
110
+ g_dict = model_single.model_g.state_dict()
111
+ for key in list(g_dict.keys()):
112
+ # Remove keys that can't be copied over due to missing speaker embedding
113
+ if (
114
+ key.startswith("dec.cond")
115
+ or key.startswith("dp.cond")
116
+ or ("enc.cond_layer" in key)
117
+ ):
118
+ g_dict.pop(key, None)
119
+
120
+ # Copy over the multi-speaker model, excluding keys related to the
121
+ # speaker embedding (which is missing from the single-speaker model).
122
+ load_state_dict(model.model_g, g_dict)
123
+ load_state_dict(model.model_d, model_single.model_d.state_dict())
124
+ _LOGGER.info(
125
+ "Successfully converted single-speaker checkpoint to multi-speaker"
126
+ )
127
+ print("training started!!")
128
+ trainer.fit(model)
129
+
130
+
131
+ def load_state_dict(model, saved_state_dict):
132
+ state_dict = model.state_dict()
133
+ new_state_dict = {}
134
+
135
+ for k, v in state_dict.items():
136
+ if k in saved_state_dict:
137
+ # Use saved value
138
+ new_state_dict[k] = saved_state_dict[k]
139
+ else:
140
+ # Use initialized value
141
+ _LOGGER.debug("%s is not in the checkpoint", k)
142
+ new_state_dict[k] = v
143
+
144
+ model.load_state_dict(new_state_dict)
145
+
146
+
147
+ # -----------------------------------------------------------------------------
148
+
149
+
150
+ if __name__ == "__main__":
151
+ main()
@@ -0,0 +1,109 @@
1
+ #!/usr/bin/env python3
2
+ import argparse
3
+ import logging
4
+ from pathlib import Path
5
+ from typing import Optional
6
+
7
+ import torch
8
+
9
+ from phoonnx_train.vits.lightning import VitsModel
10
+
11
+ _LOGGER = logging.getLogger("piper_train.export_onnx")
12
+
13
+ OPSET_VERSION = 15
14
+
15
+
16
+ def main() -> None:
17
+ """Main entry point"""
18
+ torch.manual_seed(1234)
19
+
20
+ parser = argparse.ArgumentParser()
21
+ parser.add_argument("checkpoint", help="Path to model checkpoint (.ckpt)")
22
+ parser.add_argument("output", help="Path to output model (.onnx)")
23
+
24
+ parser.add_argument(
25
+ "--debug", action="store_true", help="Print DEBUG messages to the console"
26
+ )
27
+ args = parser.parse_args()
28
+
29
+ if args.debug:
30
+ logging.basicConfig(level=logging.DEBUG)
31
+ else:
32
+ logging.basicConfig(level=logging.INFO)
33
+
34
+ _LOGGER.debug(args)
35
+
36
+ # -------------------------------------------------------------------------
37
+
38
+ args.checkpoint = Path(args.checkpoint)
39
+ args.output = Path(args.output)
40
+ args.output.parent.mkdir(parents=True, exist_ok=True)
41
+
42
+ model = VitsModel.load_from_checkpoint(args.checkpoint, dataset=None)
43
+ model_g = model.model_g
44
+
45
+ num_symbols = model_g.n_vocab
46
+ num_speakers = model_g.n_speakers
47
+
48
+ # Inference only
49
+ model_g.eval()
50
+
51
+ with torch.no_grad():
52
+ model_g.dec.remove_weight_norm()
53
+
54
+ # old_forward = model_g.infer
55
+
56
+ def infer_forward(text, text_lengths, scales, sid=None):
57
+ noise_scale = scales[0]
58
+ length_scale = scales[1]
59
+ noise_scale_w = scales[2]
60
+ audio = model_g.infer(
61
+ text,
62
+ text_lengths,
63
+ noise_scale=noise_scale,
64
+ length_scale=length_scale,
65
+ noise_scale_w=noise_scale_w,
66
+ sid=sid,
67
+ )[0].unsqueeze(1)
68
+
69
+ return audio
70
+
71
+ model_g.forward = infer_forward
72
+
73
+ dummy_input_length = 50
74
+ sequences = torch.randint(
75
+ low=0, high=num_symbols, size=(1, dummy_input_length), dtype=torch.long
76
+ )
77
+ sequence_lengths = torch.LongTensor([sequences.size(1)])
78
+
79
+ sid: Optional[torch.LongTensor] = None
80
+ if num_speakers > 1:
81
+ sid = torch.LongTensor([0])
82
+
83
+ # noise, noise_w, length
84
+ scales = torch.FloatTensor([0.667, 1.0, 0.8])
85
+ dummy_input = (sequences, sequence_lengths, scales, sid)
86
+
87
+ # Export
88
+ torch.onnx.export(
89
+ model=model_g,
90
+ args=dummy_input,
91
+ f=str(args.output),
92
+ verbose=False,
93
+ opset_version=OPSET_VERSION,
94
+ input_names=["input", "input_lengths", "scales", "sid"],
95
+ output_names=["output"],
96
+ dynamic_axes={
97
+ "input": {0: "batch_size", 1: "phonemes"},
98
+ "input_lengths": {0: "batch_size"},
99
+ "output": {0: "batch_size", 1: "time"},
100
+ },
101
+ )
102
+
103
+ _LOGGER.info("Exported model to %s", args.output)
104
+
105
+
106
+ # -----------------------------------------------------------------------------
107
+
108
+ if __name__ == "__main__":
109
+ main()