voicerender 0.2.0__tar.gz → 0.2.2__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 (215) hide show
  1. {voicerender-0.2.0 → voicerender-0.2.2}/.codecrate.toml +1 -0
  2. {voicerender-0.2.0 → voicerender-0.2.2}/.github/workflows/tests.yml +3 -0
  3. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +13 -0
  4. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md +4 -4
  5. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/audit/commit-audit.yaml +176 -0
  6. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0001.md +48 -0
  7. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0002.md +34 -0
  8. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0003.md +28 -0
  9. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0004.md +27 -0
  10. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0005.md +31 -0
  11. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/entries/entry-0006.md +31 -0
  12. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.1/release.md +27 -0
  13. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/audit/commit-audit.yaml +245 -0
  14. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0001.md +46 -0
  15. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0002.md +56 -0
  16. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0003.md +48 -0
  17. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/entries/entry-0004.md +35 -0
  18. voicerender-0.2.2/.ledger/releaseledger/data/ledgers/main/releases/0.2.2/release.md +27 -0
  19. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/audit-decisions.yaml +85 -0
  20. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/audit.yaml +122 -0
  21. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/entries.yaml +107 -0
  22. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/evidence/3342e15.patch +50 -0
  23. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/evidence/3c82349.patch +4812 -0
  24. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/evidence/7f466cc.patch +163 -0
  25. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/evidence/84f629e.patch +675 -0
  26. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/evidence/b7e1917.patch +147 -0
  27. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/evidence/manifest.json +100 -0
  28. voicerender-0.2.2/.ledger/releaseledger/work/0.2.1/range.json +13 -0
  29. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/audit-decisions.yaml +118 -0
  30. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/audit.yaml +150 -0
  31. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/entries.yaml +138 -0
  32. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/evidence/6510540.patch +3613 -0
  33. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/evidence/8861791.patch +3992 -0
  34. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/evidence/f093d36.patch +312 -0
  35. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/evidence/fdb106d.patch +6839 -0
  36. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/evidence/manifest.json +134 -0
  37. voicerender-0.2.2/.ledger/releaseledger/work/0.2.2/range.json +13 -0
  38. {voicerender-0.2.0 → voicerender-0.2.2}/PKG-INFO +138 -2
  39. {voicerender-0.2.0 → voicerender-0.2.2}/README.md +135 -1
  40. {voicerender-0.2.0 → voicerender-0.2.2}/docs/changelog.md +24 -1
  41. {voicerender-0.2.0 → voicerender-0.2.2}/docs/index.md +12 -0
  42. {voicerender-0.2.0 → voicerender-0.2.2}/docs/renderprofile.md +105 -0
  43. {voicerender-0.2.0 → voicerender-0.2.2}/pyproject.toml +3 -0
  44. voicerender-0.2.2/tests/test_cli.py +947 -0
  45. voicerender-0.2.2/tests/test_control_surface_exports.py +91 -0
  46. voicerender-0.2.2/tests/test_engine_options.py +87 -0
  47. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_engine_registry.py +78 -8
  48. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_kittensynth_engine.py +152 -1
  49. voicerender-0.2.2/tests/test_model_management_api.py +127 -0
  50. voicerender-0.2.2/tests/test_model_management_cli.py +87 -0
  51. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_pocketsynth_managed.py +75 -1
  52. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_preflight.py +46 -0
  53. voicerender-0.2.2/tests/test_profile_roles.py +250 -0
  54. voicerender-0.2.2/tests/test_profile_roles_cli.py +149 -0
  55. voicerender-0.2.2/tests/test_progress.py +145 -0
  56. voicerender-0.2.2/tests/test_qwen3_voice_design.py +185 -0
  57. voicerender-0.2.2/tests/test_qwen3synth_engine.py +688 -0
  58. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_render_book.py +268 -3
  59. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_renderer.py +68 -1
  60. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_renderplan_input.py +267 -1
  61. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_renderplan_render.py +283 -1
  62. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_renderprofile.py +121 -0
  63. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_soprosynth_engine.py +26 -1
  64. voicerender-0.2.2/tests/test_storage.py +36 -0
  65. voicerender-0.2.2/tests/test_voice_clone.py +149 -0
  66. voicerender-0.2.2/tests/test_voice_clone_cli.py +68 -0
  67. voicerender-0.2.2/tests/test_voice_descriptors.py +122 -0
  68. voicerender-0.2.2/tests/test_voice_source_cli.py +145 -0
  69. voicerender-0.2.2/tests/test_voice_source_codec.py +182 -0
  70. {voicerender-0.2.0 → voicerender-0.2.2}/tests/wheel_smoke.py +8 -1
  71. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/__init__.py +88 -1
  72. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/_version.py +3 -3
  73. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/book.py +347 -7
  74. voicerender-0.2.2/voicerender/cli.py +1877 -0
  75. voicerender-0.2.2/voicerender/engines/assets.py +124 -0
  76. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/base.py +17 -0
  77. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/kittensynth.py +32 -3
  78. voicerender-0.2.2/voicerender/engines/options.py +53 -0
  79. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/profiles.py +1 -1
  80. voicerender-0.2.2/voicerender/engines/qwen3synth.py +967 -0
  81. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/registry.py +37 -0
  82. voicerender-0.2.2/voicerender/estimates.py +179 -0
  83. voicerender-0.2.2/voicerender/events.py +101 -0
  84. voicerender-0.2.2/voicerender/models_api.py +290 -0
  85. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/preflight.py +119 -16
  86. voicerender-0.2.2/voicerender/profile_roles.py +123 -0
  87. voicerender-0.2.2/voicerender/progress.py +177 -0
  88. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/render.py +138 -4
  89. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/renderplan_input.py +20 -1
  90. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/renderplan_render.py +210 -8
  91. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/storage.py +29 -0
  92. voicerender-0.2.2/voicerender/voice_clone.py +166 -0
  93. voicerender-0.2.2/voicerender/voice_design.py +357 -0
  94. voicerender-0.2.2/voicerender/voice_source_codec.py +228 -0
  95. voicerender-0.2.2/voicerender/voice_sources.py +956 -0
  96. voicerender-0.2.2/voicerender/voices_api.py +298 -0
  97. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender.egg-info/PKG-INFO +138 -2
  98. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender.egg-info/SOURCES.txt +58 -0
  99. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender.egg-info/requires.txt +3 -0
  100. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender.egg-info/scm_file_list.json +59 -1
  101. voicerender-0.2.2/voicerender.egg-info/scm_version.json +8 -0
  102. voicerender-0.2.0/tests/test_cli.py +0 -268
  103. voicerender-0.2.0/tests/test_storage.py +0 -16
  104. voicerender-0.2.0/voicerender/cli.py +0 -588
  105. voicerender-0.2.0/voicerender/events.py +0 -43
  106. voicerender-0.2.0/voicerender/voice_sources.py +0 -426
  107. voicerender-0.2.0/voicerender.egg-info/scm_version.json +0 -8
  108. {voicerender-0.2.0 → voicerender-0.2.2}/.github/workflows/codecov.yml +0 -0
  109. {voicerender-0.2.0 → voicerender-0.2.2}/.github/workflows/pre-commit.yml +0 -0
  110. {voicerender-0.2.0 → voicerender-0.2.2}/.github/workflows/python-publish.yml +0 -0
  111. {voicerender-0.2.0 → voicerender-0.2.2}/.gitignore +0 -0
  112. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/ledger.toml +0 -0
  113. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/.ledger-project.toml +0 -0
  114. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/config.toml +0 -0
  115. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  116. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/audit/commit-audit.yaml +0 -0
  117. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/entries/entry-0001.md +0 -0
  118. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/release.md +0 -0
  119. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/audit/commit-audit.yaml +0 -0
  120. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0001.md +0 -0
  121. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0002.md +0 -0
  122. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0003.md +0 -0
  123. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0004.md +0 -0
  124. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0005.md +0 -0
  125. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0006.md +0 -0
  126. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0007.md +0 -0
  127. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/audit/commit-audit.yaml +0 -0
  128. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0001.md +0 -0
  129. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0002.md +0 -0
  130. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0003.md +0 -0
  131. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0004.md +0 -0
  132. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/entries/entry-0005.md +0 -0
  133. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/data/ledgers/main/releases/v0.1.0/release.md +0 -0
  134. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.1.1/audit-decisions.yaml +0 -0
  135. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.1.1/entries.yaml +0 -0
  136. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/audit-decisions.yaml +0 -0
  137. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/audit.yaml +0 -0
  138. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/entries.yaml +0 -0
  139. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/19f5b06.patch +0 -0
  140. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/245ca9f.patch +0 -0
  141. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/42a90e3.patch +0 -0
  142. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/480cbea.patch +0 -0
  143. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/4eb3c28.patch +0 -0
  144. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/50f298e.patch +0 -0
  145. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/56ae327.patch +0 -0
  146. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/57f1e24.patch +0 -0
  147. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/6dae2b6.patch +0 -0
  148. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/84f29db.patch +0 -0
  149. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/a390661.patch +0 -0
  150. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/a431dfa.patch +0 -0
  151. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/c2be7b3.patch +0 -0
  152. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/da15247.patch +0 -0
  153. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/ede34ea.patch +0 -0
  154. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/evidence/manifest.json +0 -0
  155. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/0.2.0/range.json +0 -0
  156. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/v0.1.0/audit-decisions.yaml +0 -0
  157. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/v0.1.0/entries.yaml +0 -0
  158. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/v0.1.0/evidence/264eb9b.patch +0 -0
  159. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/v0.1.0/evidence/774f6f2.patch +0 -0
  160. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/v0.1.0/evidence/9e71e84.patch +0 -0
  161. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/v0.1.0/evidence/c4a2872.patch +0 -0
  162. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/v0.1.0/evidence/fb7faaf.patch +0 -0
  163. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/work/v0.1.0/evidence/manifest.json +0 -0
  164. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/releaseledger/write.lock +0 -0
  165. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/taskledger/.ledger-project.toml +0 -0
  166. {voicerender-0.2.0 → voicerender-0.2.2}/.ledger/taskledger/config.toml +0 -0
  167. {voicerender-0.2.0 → voicerender-0.2.2}/.pre-commit-config.yaml +0 -0
  168. {voicerender-0.2.0 → voicerender-0.2.2}/LICENSE +0 -0
  169. {voicerender-0.2.0 → voicerender-0.2.2}/MANIFEST.in +0 -0
  170. {voicerender-0.2.0 → voicerender-0.2.2}/docs/Makefile +0 -0
  171. {voicerender-0.2.0 → voicerender-0.2.2}/docs/conf.py +0 -0
  172. {voicerender-0.2.0 → voicerender-0.2.2}/docs/make.bat +0 -0
  173. {voicerender-0.2.0 → voicerender-0.2.2}/docs/make.py +0 -0
  174. {voicerender-0.2.0 → voicerender-0.2.2}/docs/requirements.txt +0 -0
  175. {voicerender-0.2.0 → voicerender-0.2.2}/examples/README.md +0 -0
  176. {voicerender-0.2.0 → voicerender-0.2.2}/examples/plans/chapter.renderplan.toml +0 -0
  177. {voicerender-0.2.0 → voicerender-0.2.2}/examples/plans/chapter.voiceplan.toml +0 -0
  178. {voicerender-0.2.0 → voicerender-0.2.2}/examples/voices/narration.renderprofile.toml +0 -0
  179. {voicerender-0.2.0 → voicerender-0.2.2}/examples/voices/piper.toml +0 -0
  180. {voicerender-0.2.0 → voicerender-0.2.2}/examples/voices/pocket-reference.toml +0 -0
  181. {voicerender-0.2.0 → voicerender-0.2.2}/setup.cfg +0 -0
  182. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_backends.py +0 -0
  183. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_capacity.py +0 -0
  184. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_engine_contracts.py +0 -0
  185. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_inflectsynth_engine.py +0 -0
  186. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_kokoro_reference.py +0 -0
  187. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_managed_voices.py +0 -0
  188. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_package_metadata.py +0 -0
  189. {voicerender-0.2.0 → voicerender-0.2.2}/tests/test_voice_sources.py +0 -0
  190. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/__main__.py +0 -0
  191. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/book_contract.py +0 -0
  192. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/book_layout.py +0 -0
  193. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/capacity.py +0 -0
  194. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/__init__.py +0 -0
  195. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/api_probe.py +0 -0
  196. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/catalog.py +0 -0
  197. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/inflectsynth.py +0 -0
  198. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/kokoro.py +0 -0
  199. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/metadata.py +0 -0
  200. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/piper.py +0 -0
  201. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/pipersynth.py +0 -0
  202. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/pocket.py +0 -0
  203. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/pocketsynth.py +0 -0
  204. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/selection.py +0 -0
  205. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/soprosynth.py +0 -0
  206. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/engines/supertonicsynth.py +0 -0
  207. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/errors.py +0 -0
  208. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/lexicons.py +0 -0
  209. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/managed_voices.py +0 -0
  210. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/models.py +0 -0
  211. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/py.typed +0 -0
  212. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender/renderprofile.py +0 -0
  213. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender.egg-info/dependency_links.txt +0 -0
  214. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender.egg-info/entry_points.txt +0 -0
  215. {voicerender-0.2.0 → voicerender-0.2.2}/voicerender.egg-info/top_level.txt +0 -0
@@ -16,6 +16,7 @@ include = [
16
16
  "**/*.yaml",
17
17
  "**/*.yml",
18
18
  "**/*.ssmd",
19
+ "**/*.typed",
19
20
  "LICENSE",
20
21
  ]
21
22
  split_max_chars = 0
@@ -199,6 +199,7 @@ jobs:
199
199
  engine_sdks = {
200
200
  "inflectsynth", "kittensynth", "pykokoro", "pipersynth",
201
201
  "pocketsynth", "soprosynth", "supertonicsynth",
202
+ "qwen3synth",
202
203
  }
203
204
  assert not engine_sdks & base_requirements
204
205
  assert "utterplan" not in base_requirements
@@ -239,6 +240,7 @@ jobs:
239
240
  "kokoro",
240
241
  "piper",
241
242
  "pocket",
243
+ "qwen3",
242
244
  "sopro",
243
245
  "supertonic",
244
246
  }
@@ -246,6 +248,7 @@ jobs:
246
248
  name.split(".", 1)[0] in {
247
249
  "inflectsynth", "kittensynth", "pykokoro", "pipersynth",
248
250
  "pocketsynth", "soprosynth", "supertonicsynth", "utterplan",
251
+ "qwen3synth",
249
252
  }
250
253
  for name in sys.modules
251
254
  )
@@ -15,3 +15,16 @@
15
15
  {"data":{"row_count":15},"event":"audit.created","event_id":"event-0015","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.0","schema_version":2}
16
16
  {"data":{"updated_rows":15},"event":"audit.updated","event_id":"event-0016","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.0","schema_version":2}
17
17
  {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005","entry-0006","entry-0007"],"synced_audit_rows":14},"event":"entry.batch_added","event_id":"event-0017","record_revisions":{"commit_audit_sheet":3,"entry:0.2.0/entry-0001":1,"entry:0.2.0/entry-0002":1,"entry:0.2.0/entry-0003":1,"entry:0.2.0/entry-0004":1,"entry:0.2.0/entry-0005":1,"entry:0.2.0/entry-0006":1,"entry:0.2.0/entry-0007":1,"release:0.2.0":3},"release_version":"0.2.0","schema_version":2}
18
+ {"data":{"released_at":"2026-10-16"},"event":"release.finalized","event_id":"event-0018","record_revisions":{"release:0.2.0":4},"release_version":"0.2.0","schema_version":2}
19
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0019","record_revisions":{"release:0.2.1":1},"release_version":"0.2.1","schema_version":2}
20
+ {"data":{"fields":["git_base_ref","git_base_sha","git_commit_count","git_head_ref","git_head_sha","git_range"]},"event":"release.updated","event_id":"event-0020","record_revisions":{"release:0.2.1":2},"release_version":"0.2.1","schema_version":2}
21
+ {"data":{"row_count":5},"event":"audit.created","event_id":"event-0021","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.1","schema_version":2}
22
+ {"data":{"updated_rows":5},"event":"audit.updated","event_id":"event-0022","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.1","schema_version":2}
23
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005"],"synced_audit_rows":5},"event":"entry.batch_added","event_id":"event-0023","record_revisions":{"commit_audit_sheet":3,"entry:0.2.1/entry-0001":1,"entry:0.2.1/entry-0002":1,"entry:0.2.1/entry-0003":1,"entry:0.2.1/entry-0004":1,"entry:0.2.1/entry-0005":1,"release:0.2.1":3},"release_version":"0.2.1","schema_version":2}
24
+ {"data":{"kind":"added","status":"accepted"},"entry_id":"entry-0006","event":"entry.added","event_id":"event-0024","record_revisions":{"entry:0.2.1/entry-0006":1,"release:0.2.1":4},"release_version":"0.2.1","schema_version":2}
25
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0025","record_revisions":{"release:0.2.2":1},"release_version":"0.2.2","schema_version":2}
26
+ {"data":{"fields":["git_base_ref","git_base_sha","git_commit_count","git_head_ref","git_head_sha","git_range"]},"event":"release.updated","event_id":"event-0026","record_revisions":{"release:0.2.2":2},"release_version":"0.2.2","schema_version":2}
27
+ {"data":{"row_count":4},"event":"audit.created","event_id":"event-0027","record_revisions":{"commit_audit_sheet":1},"release_version":"0.2.2","schema_version":2}
28
+ {"data":{"updated_rows":4},"event":"audit.updated","event_id":"event-0028","record_revisions":{"commit_audit_sheet":2},"release_version":"0.2.2","schema_version":2}
29
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004"],"synced_audit_rows":4},"event":"entry.batch_added","event_id":"event-0029","record_revisions":{"commit_audit_sheet":3,"entry:0.2.2/entry-0001":1,"entry:0.2.2/entry-0002":1,"entry:0.2.2/entry-0003":1,"entry:0.2.2/entry-0004":1,"release:0.2.2":3},"release_version":"0.2.2","schema_version":2}
30
+ {"data":{"released_at":"2026-10-17"},"event":"release.finalized","event_id":"event-0030","record_revisions":{"release:0.2.2":4},"release_version":"0.2.2","schema_version":2}
@@ -3,16 +3,16 @@ schema_version: 2
3
3
  object_type: release
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 3
6
+ revision: 4
7
7
  version: 0.2.0
8
- status: planned
8
+ status: released
9
9
  history_state: curated
10
10
  title: null
11
- released_at: null
11
+ released_at: "2026-10-16"
12
12
  previous_version: 0.1.1
13
13
  cancel_reason: null
14
14
  superseded_by: null
15
- changelog_file: null
15
+ changelog_file: docs/changelog.md
16
16
  boundary_ref: null
17
17
  source_refs: []
18
18
  source_count: null
@@ -0,0 +1,176 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.2.1
7
+ git_base_ref: v0.2.0
8
+ git_base_sha: a627d2d625bc3e6daae8e3bee58abb77231918ec
9
+ git_head_ref: HEAD
10
+ git_head_sha: 7f466cc98bb9644372a562b621411ba778a9dba5
11
+ git_range: a627d2d625bc3e6daae8e3bee58abb77231918ec..7f466cc98bb9644372a562b621411ba778a9dba5
12
+ commit_count: 5
13
+ rows:
14
+ - sha: 3c82349993e1adc0073141215848ce0d3c10817c
15
+ source_ref: git:3c82349993e1adc0073141215848ce0d3c10817c
16
+ short_sha: 3c82349
17
+ changed_paths:
18
+ - README.md
19
+ - docs/renderprofile.md
20
+ - pyproject.toml
21
+ - tests/test_cli.py
22
+ - tests/test_engine_registry.py
23
+ - tests/test_pocketsynth_managed.py
24
+ - tests/test_qwen3_voice_design.py
25
+ - tests/test_qwen3synth_engine.py
26
+ - tests/test_renderprofile.py
27
+ - tests/test_soprosynth_engine.py
28
+ - tests/test_voice_source_codec.py
29
+ - tests/wheel_smoke.py
30
+ - voicerender/__init__.py
31
+ - voicerender/cli.py
32
+ - voicerender/engines/profiles.py
33
+ - voicerender/engines/qwen3synth.py
34
+ - voicerender/engines/registry.py
35
+ - voicerender/voice_design.py
36
+ - voicerender/voice_source_codec.py
37
+ - voicerender/voice_sources.py
38
+ stats:
39
+ files_changed: 20
40
+ insertions: 4180
41
+ deletions: 24
42
+ inspected: true
43
+ inspected_paths:
44
+ - README.md
45
+ - docs/renderprofile.md
46
+ - pyproject.toml
47
+ - tests/test_cli.py
48
+ - tests/test_engine_registry.py
49
+ - tests/test_pocketsynth_managed.py
50
+ - tests/test_qwen3_voice_design.py
51
+ - tests/test_qwen3synth_engine.py
52
+ - tests/test_renderprofile.py
53
+ - tests/test_soprosynth_engine.py
54
+ - tests/test_voice_source_codec.py
55
+ - tests/wheel_smoke.py
56
+ - voicerender/__init__.py
57
+ - voicerender/cli.py
58
+ - voicerender/engines/profiles.py
59
+ - voicerender/engines/qwen3synth.py
60
+ - voicerender/engines/registry.py
61
+ - voicerender/voice_design.py
62
+ - voicerender/voice_source_codec.py
63
+ - voicerender/voice_sources.py
64
+ observed_behavior:
65
+ Adds optional Qwen3Synth support, including VoiceDesign reference
66
+ generation, prepared voice profiles, CLI commands, engine registration, and documentation.
67
+ public_impact: public
68
+ decision: accepted
69
+ stale: false
70
+ evidence_subject: "feat: add qwen3 engine"
71
+ target_entry_id: entry-0001
72
+ notes: ""
73
+ - sha: 84f629eb7c691e0d2025de4ea8018ec0dd56f3e6
74
+ source_ref: git:84f629eb7c691e0d2025de4ea8018ec0dd56f3e6
75
+ short_sha: 84f629e
76
+ changed_paths:
77
+ - tests/test_kittensynth_engine.py
78
+ - tests/test_renderplan_input.py
79
+ - tests/test_renderplan_render.py
80
+ - tests/test_renderprofile.py
81
+ - voicerender/engines/kittensynth.py
82
+ - voicerender/renderplan_input.py
83
+ stats:
84
+ files_changed: 6
85
+ insertions: 476
86
+ deletions: 3
87
+ inspected: true
88
+ inspected_paths:
89
+ - tests/test_kittensynth_engine.py
90
+ - tests/test_renderplan_input.py
91
+ - tests/test_renderplan_render.py
92
+ - tests/test_renderprofile.py
93
+ - voicerender/engines/kittensynth.py
94
+ - voicerender/renderplan_input.py
95
+ observed_behavior:
96
+ Carries KittenSynth maximum-token metadata into RenderPlan request
97
+ measurement and validates token capability handling.
98
+ public_impact: public
99
+ decision: accepted
100
+ stale: false
101
+ evidence_subject: "feat: add maximum token field for kittensynth"
102
+ target_entry_id: entry-0002
103
+ notes: ""
104
+ - sha: b7e1917fea29831344af3900a3e26a49530fb21f
105
+ source_ref: git:b7e1917fea29831344af3900a3e26a49530fb21f
106
+ short_sha: b7e1917
107
+ changed_paths:
108
+ - tests/test_kittensynth_engine.py
109
+ - voicerender/engines/kittensynth.py
110
+ stats:
111
+ files_changed: 2
112
+ insertions: 76
113
+ deletions: 4
114
+ inspected: true
115
+ inspected_paths:
116
+ - tests/test_kittensynth_engine.py
117
+ - voicerender/engines/kittensynth.py
118
+ observed_behavior:
119
+ Maps KittenSynth input-too-long failures to a typed replanable
120
+ error with measured amount, maximum, unit, and request context.
121
+ public_impact: public
122
+ decision: accepted
123
+ stale: false
124
+ evidence_subject: "fix: kittensynth"
125
+ target_entry_id: entry-0003
126
+ notes: ""
127
+ - sha: 3342e1569de143e9170971f38c4d3a22d2dedb1b
128
+ source_ref: git:3342e1569de143e9170971f38c4d3a22d2dedb1b
129
+ short_sha: 3342e15
130
+ changed_paths:
131
+ - tests/test_qwen3synth_engine.py
132
+ stats:
133
+ files_changed: 1
134
+ insertions: 5
135
+ deletions: 3
136
+ inspected: true
137
+ inspected_paths:
138
+ - tests/test_qwen3synth_engine.py
139
+ observed_behavior:
140
+ Adjusts a Qwen3Synth test fixture path without changing product
141
+ behavior.
142
+ public_impact: internal
143
+ decision: internal
144
+ stale: false
145
+ evidence_subject: "chore: fix path"
146
+ target_entry_id: entry-0004
147
+ notes: ""
148
+ - sha: 7f466cc98bb9644372a562b621411ba778a9dba5
149
+ source_ref: git:7f466cc98bb9644372a562b621411ba778a9dba5
150
+ short_sha: 7f466cc
151
+ changed_paths:
152
+ - .github/workflows/tests.yml
153
+ - tests/test_kittensynth_engine.py
154
+ - tests/test_renderplan_input.py
155
+ - tests/test_renderplan_render.py
156
+ - tests/test_renderprofile.py
157
+ stats:
158
+ files_changed: 5
159
+ insertions: 21
160
+ deletions: 15
161
+ inspected: true
162
+ inspected_paths:
163
+ - .github/workflows/tests.yml
164
+ - tests/test_kittensynth_engine.py
165
+ - tests/test_renderplan_input.py
166
+ - tests/test_renderplan_render.py
167
+ - tests/test_renderprofile.py
168
+ observed_behavior:
169
+ Refines backend test cases and CI dependency checks; no product
170
+ behavior change.
171
+ public_impact: internal
172
+ decision: internal
173
+ stale: false
174
+ evidence_subject: "chore: pytest fix"
175
+ target_entry_id: entry-0005
176
+ notes: ""
@@ -0,0 +1,48 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0001
8
+ release_version: 0.2.1
9
+ kind: added
10
+ summary:
11
+ Added optional Qwen3Synth support for VoiceDesign references, prepared voice
12
+ profiles, and Qwen Base rendering
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:3c82349993e1adc0073141215848ce0d3c10817c
18
+ paths:
19
+ - README.md
20
+ - docs/renderprofile.md
21
+ - pyproject.toml
22
+ - tests/test_cli.py
23
+ - tests/test_engine_registry.py
24
+ - tests/test_pocketsynth_managed.py
25
+ - tests/test_qwen3_voice_design.py
26
+ - tests/test_qwen3synth_engine.py
27
+ - tests/test_renderprofile.py
28
+ - tests/test_soprosynth_engine.py
29
+ - tests/test_voice_source_codec.py
30
+ - tests/wheel_smoke.py
31
+ - voicerender/__init__.py
32
+ - voicerender/cli.py
33
+ - voicerender/engines/profiles.py
34
+ - voicerender/engines/qwen3synth.py
35
+ - voicerender/engines/registry.py
36
+ - voicerender/voice_design.py
37
+ - voicerender/voice_source_codec.py
38
+ - voicerender/voice_sources.py
39
+ issues: []
40
+ prs: []
41
+ sources:
42
+ - git:3c82349993e1adc0073141215848ce0d3c10817c
43
+ contributors:
44
+ - "@holgern"
45
+ breaking: false
46
+ internal: false
47
+ order: 1
48
+ ---
@@ -0,0 +1,34 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0002
8
+ release_version: 0.2.1
9
+ kind: added
10
+ summary:
11
+ Added KittenSynth model-token capacity metadata and preflight-aware request
12
+ handling
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:84f629eb7c691e0d2025de4ea8018ec0dd56f3e6
18
+ paths:
19
+ - tests/test_kittensynth_engine.py
20
+ - tests/test_renderplan_input.py
21
+ - tests/test_renderplan_render.py
22
+ - tests/test_renderprofile.py
23
+ - voicerender/engines/kittensynth.py
24
+ - voicerender/renderplan_input.py
25
+ issues: []
26
+ prs: []
27
+ sources:
28
+ - git:84f629eb7c691e0d2025de4ea8018ec0dd56f3e6
29
+ contributors:
30
+ - "@holgern"
31
+ breaking: false
32
+ internal: false
33
+ order: 2
34
+ ---
@@ -0,0 +1,28 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0003
8
+ release_version: 0.2.1
9
+ kind: fixed
10
+ summary: Fixed KittenSynth over-limit error reporting with replan details
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:b7e1917fea29831344af3900a3e26a49530fb21f
16
+ paths:
17
+ - tests/test_kittensynth_engine.py
18
+ - voicerender/engines/kittensynth.py
19
+ issues: []
20
+ prs: []
21
+ sources:
22
+ - git:b7e1917fea29831344af3900a3e26a49530fb21f
23
+ contributors:
24
+ - "@holgern"
25
+ breaking: false
26
+ internal: false
27
+ order: 3
28
+ ---
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0004
8
+ release_version: 0.2.1
9
+ kind: internal
10
+ summary: Changed a Qwen3Synth test fixture path
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:3342e1569de143e9170971f38c4d3a22d2dedb1b
16
+ paths:
17
+ - tests/test_qwen3synth_engine.py
18
+ issues: []
19
+ prs: []
20
+ sources:
21
+ - git:3342e1569de143e9170971f38c4d3a22d2dedb1b
22
+ contributors:
23
+ - "@holgern"
24
+ breaking: false
25
+ internal: true
26
+ order: 4
27
+ ---
@@ -0,0 +1,31 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0005
8
+ release_version: 0.2.1
9
+ kind: internal
10
+ summary: Changed backend tests and CI dependency checks
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:7f466cc98bb9644372a562b621411ba778a9dba5
16
+ paths:
17
+ - .github/workflows/tests.yml
18
+ - tests/test_kittensynth_engine.py
19
+ - tests/test_renderplan_input.py
20
+ - tests/test_renderplan_render.py
21
+ - tests/test_renderprofile.py
22
+ issues: []
23
+ prs: []
24
+ sources:
25
+ - git:7f466cc98bb9644372a562b621411ba778a9dba5
26
+ contributors:
27
+ - "@holgern"
28
+ breaking: false
29
+ internal: true
30
+ order: 5
31
+ ---
@@ -0,0 +1,31 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0006
8
+ release_version: 0.2.1
9
+ kind: added
10
+ summary: Added typed progress, evidence-based ETA, and workload estimates
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs: []
15
+ paths:
16
+ - voicerender/events.py
17
+ - voicerender/progress.py
18
+ - voicerender/cli.py
19
+ - voicerender/estimates.py
20
+ - README.md
21
+ - docs/index.md
22
+ issues: []
23
+ prs: []
24
+ sources: []
25
+ contributors: []
26
+ breaking: false
27
+ internal: false
28
+ order: 6
29
+ ---
30
+
31
+ Render and preflight callbacks expose item and chapter progress with ETA only after successful synthesis timing samples. CLI progress stays on stderr, while pre-run estimates report verified output reuse and unknown duration without a calibrated timing model.
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 4
7
+ version: 0.2.1
8
+ status: planned
9
+ history_state: curated
10
+ title: null
11
+ released_at: null
12
+ previous_version: 0.2.0
13
+ cancel_reason: null
14
+ superseded_by: null
15
+ changelog_file: null
16
+ boundary_ref: null
17
+ source_refs: []
18
+ source_count: null
19
+ entry_count: 6
20
+ artifact_count: 0
21
+ git_base_ref: v0.2.0
22
+ git_base_sha: a627d2d625bc3e6daae8e3bee58abb77231918ec
23
+ git_head_ref: HEAD
24
+ git_head_sha: 7f466cc98bb9644372a562b621411ba778a9dba5
25
+ git_range: a627d2d625bc3e6daae8e3bee58abb77231918ec..7f466cc98bb9644372a562b621411ba778a9dba5
26
+ git_commit_count: 5
27
+ ---