airunner-tts-vendor
Vendored MeloTTS and
OpenVoice forks used by the
TTS pipeline in
Capsize-Games/airunner
(AI Runner). This is third-party code, kept in its own repository
rather than a subdirectory of airunner-services specifically so its
licensing and upstream provenance stay physically separate from that
GPL-3.0 distribution's own code, and so upstream diffs stay legible.
Licensing
Both melo/ and openvoice/ are separately MIT-licensed by their
respective upstream projects. See melo/LICENSE and
openvoice/LICENSE for the exact upstream copyright notices; neither
this package as a whole nor Capsize LLC's own integration changes
relicense either subtree. This repository does not carry a top-level
LICENSE file that would override either subtree's own.
Provenance
Extracted from Capsize-Games/airunner at commit b57cb8e3d
(2026-09-17), as issue
#2195, part
of the repository-split tracker
#2185.
History for the moved files is preserved (git filter-repo).
Each subtree's own README documents its upstream project and
whichever pin information issue
#2190 could
establish for it -- see melo/README.md and openvoice/README.md.
Neither README names an exact upstream commit; both were vendored
from the upstream project's main branch at the time of integration
(issue #2051 in the source repository) without recording the specific
commit. That is a real gap, not an oversight being papered over here:
if an exact upstream fork point is ever needed (for issue #2113 in
the source repository, the dependency/model license inventory, or for
comparing against a specific upstream release), it is not currently
determinable from this repository's history and would need to be
reconstructed by diffing against the upstream projects directly.
Local modifications
Both forks were decoupled from the application they used to live
beside (issue #2190,
before this extraction): no import here reaches into airunner,
airunner_common, or airunner_services. Where the fork previously
needed something app-specific (a language enum, a model storage path,
a cache directory, the application's GPU-memory-clearing helper), it
now either defines its own equivalent (melo/language.py,
openvoice/language.py) or exposes an injectable resolver/hook that
the host process registers at startup
(set_tts_model_root_resolver, set_tts_model_base_resolver,
set_cache_base_resolver, set_memory_cleanup_hook in
melo/runtime_support.py and melo/api.py) -- see each subtree's own
README for the full list.
Do not reformat, restyle, or lint-fix the vendored code. The value of keeping it in its own repository is that upstream diffs stay readable; a formatting pass defeats that on day one.
Install
The base install has no torch dependency at all -- melo/api.py and
openvoice/api.py need torch to import, but installing this
package does not require it, since torch needs an explicit
--index-url for your platform (CPU vs a specific CUDA version):
pip install -e .
pip install "airunner-tts-vendor[ml]" \
--index-url https://download.pytorch.org/whl/cu129 # GPU
pip install "airunner-tts-vendor[ml]" \
--index-url https://download.pytorch.org/whl/cpu # CPU
# Plus, per language:
pip install -e ".[zh]" # Chinese (MeloTTS/OpenVoice)
pip install -e ".[jp]" # Japanese
pip install -e ".[kr]" # Korean
pip install -e ".[tw]" # Taiwanese Hokkien (g2pkk)
pip install -e ".[gruut]" # German/Spanish/French phonemization support
No dependency on airunner, airunner-common, or airunner-services
-- this package installs and imports standalone. airunner-services
depends on the published version of this package; see
runtimes/openvoice_model_manager.py and
runtimes/openvoice_runtime_helpers.py in that repository for its
public surface (melo.api, melo.runtime_support, openvoice.api,
openvoice.se_extractor, openvoice.mel_processing) and the resolver
registration that reconnects it to the application after installing
this package.
Testing
This fork has no tests of its own in the source repository; the TTS
synthesis tests that exercise it (test_tts_synthesize_functional.py,
test_model_load_security.py) stay in airunner-services, since they
need the full daemon and a real GPU/model to run meaningfully. CI here
is therefore limited to import-level sanity checks: that both
subtrees import cleanly with no application dependency present, and
that the language-enum/resolver integration points this repository
exposes behave as documented. Full synthesis coverage (and the
bobross.wav
reference-speaker fixture it uses) stays in airunner-services as an
integration test against this published package.
Metadata
Release files for airunner-tts-vendor 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| airunner_tts_vendor-0.1.0.tar.gz | 4.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| airunner_tts_vendor-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.0 MB
Release files / airunner_tts_vendor-0.1.0.tar.gz
| Download URL | airunner_tts_vendor-0.1.0.tar.gz |
|---|---|
| Size | 4.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e5c4c5679246a4f91e42c9ee697c1e5967fc407892d11ff023a94610ad74e12f
|
|
BLAKE2b-256 checksum How to use checksums |
3550bd5944b5f42f57da3b938aa17766edae510509ae4877437793c92561f0ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / airunner_tts_vendor-0.1.0-py3-none-any.whl
| Download URL | airunner_tts_vendor-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
67140a3805bbe0aea3429c90cef062b64b7ee209ed6cedd23ea9857914098bc6
|
|
BLAKE2b-256 checksum How to use checksums |
f61acc348a0799259755b83ea3b58ad66786e645e5f3628c597d0f4006bba79a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency log