Skip to main content

tungnaa is a text-to-voice model family and musical instrument

Project description

Tungnaa Interactive Voice Instruments

Training and GUI inference for interactive artistic text-to-voice models.

Installation

pip install tungnaa[gui] (to use the instrument)

pip install tungnaa[train] (if you are installing on a server to train models)

Usage

tungnaa --help

Running with the Python Audio Engine

  • #todo model selection from the Tungnaa gui, including block size and sample rate that match system (currently not possible to have a SR mismatch)
  • #todo audio device selection from the Tungnaa gui
tungnaa run --audio-out default

use tungnaa list-devices to get audio devices by index

Using SuperCollider, PureData or Max as Audio Engine

If --latent-audio switch is enabled, Tungnaa will stream RAVE latent trajectories over a single audio-rate channel, which can be piped into another audio engine running the RAVE vocoder. The piping can be done relatively easily on Linux using JACK, and on MacOS using Blackhole.

SuperCollider: sclang supercollider/rtvoice-demo.scd

tungnaa run --latent_audio

Training Models

vocoder training

using victor-shepardson RAVE fork

example preprocessing with joining of short files (especially useful for datasets containing many short utterances)

rave preprocess \
--input_path /path/to/audio/directory \
--output_path /path/to/tmp/storage/myravedata \
--num_signal 150000 --sampling_rate 48000 \
--join_short_files

example transfer learning using IIL rave-models:

rave train --name 001-my-vocoder-name \
--config rave-models/voice_multi_b2048_r48000/config.gin --config transfer \
--db_path /path/to/tmp/storage/myravedata \
--out_path /path/to/rave/runs \
--transfer_ckpt rave-models/voice_multi_b2048_r48000/version_0/checkpoints/last.ckpt \
--n_signal 150000
--gpu 0

example export using sign normalization (latents correlate with louder/brighter sounds):

rave export --run /path/to/rave/runs/001-my-vocoder-name \
--streaming --normalize_sign --latent_size ...

Tungnaá preprocessing

see tungnaa prep --help.

To use datasets other than vctk or hifitts, it may be necessary to add an adapter function in prep.py.

example:

tungnaa prep \
--datasets '{kind:"vctk", path:"/path/to/VCTK"}' \
--rave-path /path/to/rave_streaming.ts \
--out-path /path/to/tmp/dataset_name

training

see tungnaa trainer --help

example:

tungnaa trainer --experiment 001-my-tts-name \
--model-dir /path/for/checkpoints \
--log-dir /path/for/logs \
--manifest /path/to/tmp/dataset_name/manifest.json \
--rave-model /path/to/rave_streaming.ts 
--lr 3e-4 --lr-text 3e-5 --epoch-size 200 --save-epochs 20 \
--device cuda:0 \
train 

resume a stopped training: add --checkpoint /path/to/checkpoint

transfer learning: add --checkpoint /path/to/checkpoint --resume False

in-text annotations

--speaker_annotate prepends the speaker id determined during prepreprocessing. With --speaker_dataset, it includes the dataset.

--csv /path/to/file.csv accepts a jvs_labels_encoder_k7.csv-style CSV file. First column contains the audio filename without extension, second column contains an annotation to be prepended to text.

If you were to use all three options, you would get:

"csvval:[dataset:speaker] original text"

Developing

Poetry is used for packaging and dependency management. Conda is used for environments and Python version management, and may be replaced by virtualenv or similar.

  1. cd tungnaa
  2. conda create -n tungnaa python=3.12 ffmpeg
  3. conda activate tungnaa
  4. poetry install

Note that poetry should not be installed in the project environment, but rather from the system package manager, with pipx, or in a separate environment.

To add a dependency, use poetry add, or edit pyproject.toml and then run poetry lock; poetry install.

To add a model, use dvc add /path/to/model, then git add /path/to/model.dvc. Tungnaá models should go in models/tts/, and be accompanied by a model.md file. Vocoders should go in models/vocoders.

docs

run mkdocs serve to build and view documentation

run mkdocs gh-deploy to deploy to github pages

Non-Python Dependencies

Python Dependencies

See pyproject.toml

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tungnaa-0.1.2.tar.gz (97.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tungnaa-0.1.2-py3-none-any.whl (97.7 kB view details)

Uploaded Python 3

File details

Details for the file tungnaa-0.1.2.tar.gz.

File metadata

  • Download URL: tungnaa-0.1.2.tar.gz
  • Upload date:
  • Size: 97.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.13 Darwin/24.5.0

File hashes

Hashes for tungnaa-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3b9586b21050140e6f9358f849f0a7276d6ca12782df61ef40ceb162ffe57f18
MD5 34985de06e4d931ad7517361ae61d190
BLAKE2b-256 556a488c7a5ec2a0b77300586bd7c3aa441b1d1cea21202568d298e704fa1dac

See more details on using hashes here.

File details

Details for the file tungnaa-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: tungnaa-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 97.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.13 Darwin/24.5.0

File hashes

Hashes for tungnaa-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb087b0bfe7847f0d93432de905a151a5c218c5a0aaac7517e9690e5cd016324
MD5 18ef0b8dc29d259ea79246bb21ea1038
BLAKE2b-256 54f935a68089c469a237d1e17bcbadf1ad0b4918d8e8de7c701f144cd09dae24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page