From da503eb446c18f3bf4c918553585600af2977285 Mon Sep 17 00:00:00 2001 From: Owen Song Date: Tue, 16 Jun 2026 19:50:26 +0000 Subject: [PATCH] Refresh model card and examples --- README.md | 112 ++++++------------ .../tinytts_text_cleaning.cpython-312.pyc | Bin 0 -> 1127 bytes .../train_hifigan_oracle_v1.cpython-312.pyc | Bin 0 -> 55080 bytes ..._micro_fastspeech_v3_pitch.cpython-312.pyc | Bin 0 -> 85219 bytes examples/example_01.wav | 4 +- examples/example_02.wav | 4 +- examples/example_03.wav | 4 +- examples/example_04.wav | 4 +- examples/example_05.wav | 4 +- examples/example_06.wav | 4 +- examples/example_07.wav | 4 +- examples/example_08.wav | 4 +- examples/examples.json | 108 ++++++++--------- inference.py | 4 +- model_summary.json | 8 +- tiny_tts/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 5587 bytes tiny_tts/__pycache__/infer.cpython-312.pyc | Bin 0 -> 11634 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1470 bytes .../__pycache__/core.cpython-312.pyc | Bin 0 -> 1787 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 226 bytes .../__pycache__/synthesizer.cpython-312.pyc | Bin 0 -> 28876 bytes .../nn/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 167 bytes .../nn/__pycache__/attentions.cpython-312.pyc | Bin 0 -> 21652 bytes .../nn/__pycache__/commons.cpython-312.pyc | Bin 0 -> 9557 bytes .../nn/__pycache__/modules.cpython-312.pyc | Bin 0 -> 25034 bytes .../nn/__pycache__/transforms.cpython-312.pyc | Bin 0 -> 6956 bytes .../text/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1226 bytes .../text/__pycache__/english.cpython-312.pyc | Bin 0 -> 7111 bytes .../text/__pycache__/symbols.cpython-312.pyc | Bin 0 -> 3562 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 183 bytes .../__pycache__/abbreviations.cpython-312.pyc | Bin 0 -> 1114 bytes .../__pycache__/number_norm.cpython-312.pyc | Bin 0 -> 4689 bytes .../__pycache__/time_norm.cpython-312.pyc | Bin 0 -> 2240 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 453 bytes .../utils/__pycache__/config.cpython-312.pyc | Bin 0 -> 1445 bytes train_inflect_micro_fastspeech_v3_pitch.py | 6 +- weights/inflect_nano_v1_acoustic.pt | 2 +- 37 files changed, 113 insertions(+), 159 deletions(-) create mode 100644 __pycache__/tinytts_text_cleaning.cpython-312.pyc create mode 100644 __pycache__/train_hifigan_oracle_v1.cpython-312.pyc create mode 100644 __pycache__/train_inflect_micro_fastspeech_v3_pitch.cpython-312.pyc create mode 100644 tiny_tts/__pycache__/__init__.cpython-312.pyc create mode 100644 tiny_tts/__pycache__/infer.cpython-312.pyc create mode 100644 tiny_tts/alignment/__pycache__/__init__.cpython-312.pyc create mode 100644 tiny_tts/alignment/__pycache__/core.cpython-312.pyc create mode 100644 tiny_tts/models/__pycache__/__init__.cpython-312.pyc create mode 100644 tiny_tts/models/__pycache__/synthesizer.cpython-312.pyc create mode 100644 tiny_tts/nn/__pycache__/__init__.cpython-312.pyc create mode 100644 tiny_tts/nn/__pycache__/attentions.cpython-312.pyc create mode 100644 tiny_tts/nn/__pycache__/commons.cpython-312.pyc create mode 100644 tiny_tts/nn/__pycache__/modules.cpython-312.pyc create mode 100644 tiny_tts/nn/__pycache__/transforms.cpython-312.pyc create mode 100644 tiny_tts/text/__pycache__/__init__.cpython-312.pyc create mode 100644 tiny_tts/text/__pycache__/english.cpython-312.pyc create mode 100644 tiny_tts/text/__pycache__/symbols.cpython-312.pyc create mode 100644 tiny_tts/text/english_utils/__pycache__/__init__.cpython-312.pyc create mode 100644 tiny_tts/text/english_utils/__pycache__/abbreviations.cpython-312.pyc create mode 100644 tiny_tts/text/english_utils/__pycache__/number_norm.cpython-312.pyc create mode 100644 tiny_tts/text/english_utils/__pycache__/time_norm.cpython-312.pyc create mode 100644 tiny_tts/utils/__pycache__/__init__.cpython-312.pyc create mode 100644 tiny_tts/utils/__pycache__/config.cpython-312.pyc diff --git a/README.md b/README.md index e0dcbbc..197736f 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,9 @@ tags: - tts - speech-synthesis - pytorch +- ultra-small - tiny-tts +- local-tts - experimental pipeline_tag: text-to-speech library_name: pytorch @@ -15,9 +17,21 @@ library_name: pytorch # Inflect-Nano-v1 -Inflect-Nano-v1 is an experimental ultra-small English TTS stack. It is built to test how far a sub-5M-parameter text-to-speech system can be pushed with a compact non-autoregressive acoustic model and a small neural vocoder. +Inflect-Nano-v1 is an **ultra-small English text-to-speech model** with only **4.63M inference parameters total**. That includes both the acoustic model and the neural vocoder. -This is **not** a production-quality or SOTA TTS model. It is a research/demo release: small, local, and runnable, but still audibly limited. +The goal is simple: explore how far a truly tiny, fully local TTS stack can be pushed while staying small enough to run in places where normal TTS models are too large. It is one of the smallest neural TTS releases in this class, sitting far below the size of most modern speech synthesis systems. + +This is an experimental release, not a production or SOTA voice model. It is small, fast to load, and usable for demos, but it still has audible quality limits. + +## Why It Is Notable + +- **4.63M total inference parameters** +- **Includes the vocoder**, not just a front-end acoustic model +- English-only single-voice speech synthesis +- 24 kHz waveform output +- Compact non-autoregressive acoustic model +- Small Snake-activation HiFi-GAN-style vocoder +- Designed for local/offline experiments and tiny-model research ## Quick Facts @@ -27,26 +41,25 @@ This is **not** a production-quality or SOTA TTS model. It is a research/demo re | Acoustic model | **3.465M** | | Vocoder generator | **1.167M** | | Language | English | -| Voice | single Mark-style synthetic male voice | +| Voice | single male voice | | Sample rate | 24 kHz | | Acoustic output | 80-bin mel spectrogram | -| Vocoder | custom Snake-activation HiFi-GAN-style generator | -| Training source | synthetic Qwen3-TTS Mark-style teacher data | +| Vocoder | Snake V2Mid HiFi-GAN-style generator | ## Audio Examples -These are unseen/OOD stress prompts, not hand-picked training rows. +These examples cover punctuation, short questions, numbers, hard words, longer phrasing, and transition-heavy prompts. | Prompt | Audio | |---|---| -| Wait, are you actually being for real now? I can't believe it! | | -| Sophia sent me 43 pictures of her doing stuff... interesting. | | -| Please say chrysanthemum, thoroughly, proprietary, and rural without rushing through the middle syllables. | | -| No, seriously, did Jordan leave the receipt in Albuquerque, or did Priya move it to Worcester? | | -| The Wi-Fi password is Q7-Delta-9921, but please do not say the dash like a minus sign. | | -| I appreciate the honesty, but that explanation sounded weirdly dramatic for a Tuesday morning. | | -| Could you whisper the first part, then brighten up when you say, 'we finally solved it'? | | -| The dermatologist, the anesthesiologist, and the statistician all disagreed about February. | | +| "Did the timing change?" she answered. "Then why did Logan leave?" | [example_01.wav](./examples/example_01.wav) | +| Who puts a parking meter next to an ER label? | [example_02.wav](./examples/example_02.wav) | +| Please say neighborhood, statistics, and anesthesiologist clearly, without rushing through the middle syllables. | [example_03.wav](./examples/example_03.wav) | +| I said 91, not 306, which is a very different number. | [example_04.wav](./examples/example_04.wav) | +| The inference path looked natural, but the decoder still needed a smoother transition before Marcus approved the final test. | [example_05.wav](./examples/example_05.wav) | +| The appointment moved to 1:25, the invoice was $674.96, and the archive was labeled 1998. | [example_06.wav](./examples/example_06.wav) | +| If Logan sounded uneasy, then it happened near Long Beach, and the pause has to carry that. | [example_07.wav](./examples/example_07.wav) | +| The word aluminum should not steal attention from the softer ending after entrepreneur. | [example_08.wav](./examples/example_08.wav) | ## Install @@ -56,7 +69,7 @@ cd Inflect-Nano-v1 pip install -r requirements.txt ``` -The text frontend uses TinyTTS-style English G2P and may download `bert-base-uncased` tokenizer files on first run. +The text frontend may download tokenizer files on first run. ## Usage @@ -71,7 +84,7 @@ CPU example: ```bash python inference.py \ --device cpu \ - --text "Please say chrysanthemum, thoroughly, proprietary, and rural clearly." \ + --text "Please say neighborhood, statistics, and anesthesiologist clearly." \ --out sample_cpu.wav ``` @@ -98,7 +111,7 @@ Inflect-Nano-v1 is a two-part TTS stack: ```text text --> TinyTTS-style normalization + G2P phoneme/tone/lang IDs +-> normalization + English G2P frontend -> compact FastSpeech-style acoustic model -> 80-bin mel spectrogram -> Snake V2Mid HiFi-GAN-style vocoder @@ -107,7 +120,7 @@ text ### Acoustic Model -The acoustic model is a small non-autoregressive FastSpeech-style network. It predicts duration, energy, brightness, and pitch, then expands token states into frame states and decodes mels. +The acoustic model is a compact non-autoregressive FastSpeech-style network. It predicts duration, energy, brightness, and pitch, expands token states into frame states, and decodes 80-bin mel spectrograms. Main config: @@ -129,7 +142,7 @@ Main config: } ``` -Acoustic parameter split: +Approximate acoustic split: ```text total acoustic: 3.465M @@ -165,61 +178,9 @@ Main config: } ``` -The vocoder was trained with HiFi-GAN-style adversarial losses and multi-resolution spectral pressure. Discriminators are training-only and are not included in inference. +Discriminators are training-only and are not included in inference parameter counts. -## Training Data - -The final acoustic model was trained primarily on synthetic Mark-style teacher speech. - -Known final broad training mix: - -```text -mixed_80k_v2_40_v1_20_old_20 -rows: 80,000 -estimated duration: ~125.2 hours -composition: - 40k newer generalization v2 examples - 20k generalization v1 examples - 20k older Mark anchor examples -``` - -The practical release voice is one speaker: - -```text -qwen3_mark -``` - -## Training Recipe - -The final F checkpoint is a staged recovery candidate, not a single monolithic run. - -High-level acoustic lineage: - -```text -1. Mark-focused acoustic base -2. mixed 80k generalization training -3. predictor-exposure heads training -4. robust prosody bridge -5. recovery phases A/B/C -6. short predictor-tail cleanup -``` - -Known acoustic continuation after the earlier Mark base: - -```text -mixed80k broad training: ~32k selected checkpoint -predictor exposure: 9k steps -robust prosody bridge: 1.2k steps -recovery phase A: 3k steps -recovery phase B: 3k steps -recovery phase C: 2.5k steps -predictor tail: 0.8k steps -known continuation total: ~51.5k steps -``` - -Acoustic losses included mel reconstruction, MSE, delta/acceleration losses, duration loss, energy loss, brightness loss, pitch loss, predicted-prosody exposure, and robust-prosody exposure. - -Final selected files in this repo: +## Model Files ```text weights/inflect_nano_v1_acoustic.pt @@ -233,7 +194,6 @@ This model is intentionally tiny and has clear quality limits: - Unseen text can stumble or sound unstable. - The voice can sound robotic, buzzy, or artifacted. - Long or unusual prompts are less reliable. -- It inherits habits from synthetic Qwen3-TTS teacher data. - It is not a voice cloning model. - It is not multilingual. - It is not suitable for production accessibility, safety, or high-quality narration use. @@ -248,4 +208,6 @@ Do not present it as SOTA or production-quality. ## License -Apache-2.0. The repo includes TinyTTS text frontend code; its license is included as `TINY_TTS_LICENSE`. +Apache-2.0. + +This repository includes a small third-party English text frontend derived from TinyTTS-style code for tokenization/G2P compatibility. Its license is included as `TINY_TTS_LICENSE`. diff --git a/__pycache__/tinytts_text_cleaning.cpython-312.pyc b/__pycache__/tinytts_text_cleaning.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..00420aa0261d19afca081722b057ae6631d3096a GIT binary patch literal 1127 zcmah{%}*0S6rb6C(Jtkq0>;GPD)><>P2fNx5=|3~A(|3x@lZ=POLq#b+ude%*4PS3 z4;~~Q&`3f}FyTZn{3m*W)I>7T#DEuX7(9`fIJ4{)^un9j_j~i3H}CCxGoQlY5Mc7> z<6&W00APKXPxT*1I@LSyulGDifoMxLku-2g(F#>0 z5%i2m1)UgD+0t{wvM)qR7xYRxostyJXj(;@Q%uRMlx7Ugl=23SS3U7~+_`}DswZn+ zr%d)!?A^EfO<@VX^>z=H#LPI8j&ANO{VY2 z>4%AA>V6_UF`1+RjLMplLsYI!7FJq)3#YARvFRAFp;M1WjVdW8G$~=UeV@`TOpN*F*G-5C0ll!=brRZj#Sz@XN zeu!-^$*UV*#NKVO_w$9JhB#as-x1rF#umrwzPi;AFW1Juis7Y^#gW%n>V0+65c|J~ z1KZ+2LyR@IwjzCNQyb$Aap(lqzlJu_Zot~T1C|g(y|{}3=5L1jF(MY$?FDOLNS5;! zBakd({E0Hz6V114P4p- w!F@mIIkz(XX8L=idxy_1d)jumV~5SQ&R=IjKL3HIwMW9-m*kPym3xZb&*#H0l literal 0 HcmV?d00001 diff --git a/__pycache__/train_hifigan_oracle_v1.cpython-312.pyc b/__pycache__/train_hifigan_oracle_v1.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7dbb86bf593f0bf5567ea34a6ccac3d44aebb678 GIT binary patch literal 55080 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 EUs+k300000 literal 0 HcmV?d00001 diff --git a/__pycache__/train_inflect_micro_fastspeech_v3_pitch.cpython-312.pyc b/__pycache__/train_inflect_micro_fastspeech_v3_pitch.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8558fcbe37f8efa16dbf51874667eeed8c06dd2a GIT binary patch literal 85219 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 R&GA8Id`C>&2X-C8{|yt+E&%`l literal 0 HcmV?d00001 diff --git a/examples/example_01.wav b/examples/example_01.wav index d500fca..6f137b7 100644 --- a/examples/example_01.wav +++ b/examples/example_01.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2fe6b5ec6df7de814dd5bed1a57f4bd7c9f04924bea0147d2eb22e8df7d4360f -size 158252 +oid sha256:55dc5cac731fd235bdec429b69df1c4cd0fe81dcd7e974fe9bac5963954e5eed +size 152108 diff --git a/examples/example_02.wav b/examples/example_02.wav index a0fedd3..4bcb873 100644 --- a/examples/example_02.wav +++ b/examples/example_02.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b26e69d5e399a3df08f1fee96947d9dfd5ba145fad21d11457adc1a051a82ff -size 149036 +oid sha256:4afc0eef2ddd5b1d1ec5e1655609e305dd69b639bc47c5a8e20f4d1c2fced530 +size 101420 diff --git a/examples/example_03.wav b/examples/example_03.wav index b780082..db1cd04 100644 --- a/examples/example_03.wav +++ b/examples/example_03.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a64ba7dc961a1e36cddaeeecef895cd6ae31c280a87716c7ed5e0c07d8453593 -size 242220 +oid sha256:16f28ad3d999eefa3103b19577523b65f42f938e967cfbf025caa377875527e5 +size 265772 diff --git a/examples/example_04.wav b/examples/example_04.wav index c92804c..69279a0 100644 --- a/examples/example_04.wav +++ b/examples/example_04.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a418df29835651d73009c26ffcf9323181958fcdfff0d6f545e9c476ce325fd7 -size 237612 +oid sha256:a19c0a4e49e8bcd41fb8fa31a9bda9ebc935422cc16c307d2a6e156e5c429774 +size 172588 diff --git a/examples/example_05.wav b/examples/example_05.wav index ea9bd4d..e0abc4d 100644 --- a/examples/example_05.wav +++ b/examples/example_05.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9eaf70937d3e26242fa6c85b2ad0d77c23658ee883c781ca2e06445d5e7f1ee7 -size 285228 +oid sha256:a8703c83c8cc395f58d1aafbf0f76f1a20af00f9944113adbba48216daca6fcf +size 289324 diff --git a/examples/example_06.wav b/examples/example_06.wav index 4970d5b..2358857 100644 --- a/examples/example_06.wav +++ b/examples/example_06.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d32d2b176f3f1be6f0f924da1963888926d911928bbe49a3b843b78a16f1455 -size 225324 +oid sha256:8821a125bc4ce5ed9922f261e4d3ccd871c337724e6b511b90f535d87706961e +size 344620 diff --git a/examples/example_07.wav b/examples/example_07.wav index 47e0360..38c609f 100644 --- a/examples/example_07.wav +++ b/examples/example_07.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f485d91f66c98b16260d0abaeac1dfa70c2cee7960d6e08838c4dfe5a1a135bc -size 209964 +oid sha256:1337f5b71009a435148729d86256dfcac1c7c30b073c02c58424c9a8d2c6d362 +size 214060 diff --git a/examples/example_08.wav b/examples/example_08.wav index b09206b..7457d52 100644 --- a/examples/example_08.wav +++ b/examples/example_08.wav @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4f1b97bc9b4387cd0b8657b20e3b276e2812a8fab6a821958e193e8ad205bc07 -size 234540 +oid sha256:255a20ae1000dab1f72531423e7a87e62ba718221e7f40d318fbd16ec7af6e31 +size 190508 diff --git a/examples/examples.json b/examples/examples.json index 0e851e2..efea21c 100644 --- a/examples/examples.json +++ b/examples/examples.json @@ -1,58 +1,50 @@ -[ - { - "id": "example_01", - "text": "Wait, are you actually being for real now? I can't believe it!", - "file": "examples/example_01.wav", - "seconds": 3.296, - "source_gallery": "INFLECT_MICRO_5M_OOD_STRESS_CANDIDATES_V1/F_RECOVERY_FINAL" - }, - { - "id": "example_02", - "text": "Sophia sent me 43 pictures of her doing stuff... interesting.", - "file": "examples/example_02.wav", - "seconds": 3.104, - "source_gallery": "INFLECT_MICRO_5M_OOD_STRESS_CANDIDATES_V1/F_RECOVERY_FINAL" - }, - { - "id": "example_03", - "text": "Please say chrysanthemum, thoroughly, proprietary, and rural without rushing through the middle syllables.", - "file": "examples/example_03.wav", - "seconds": 5.045333333333334, - "source_gallery": "INFLECT_MICRO_5M_OOD_STRESS_CANDIDATES_V1/F_RECOVERY_FINAL" - }, - { - "id": "example_04", - "text": "No, seriously, did Jordan leave the receipt in Albuquerque, or did Priya move it to Worcester?", - "file": "examples/example_04.wav", - "seconds": 4.949333333333334, - "source_gallery": "INFLECT_MICRO_5M_OOD_STRESS_CANDIDATES_V1/F_RECOVERY_FINAL" - }, - { - "id": "example_05", - "text": "The Wi-Fi password is Q7-Delta-9921, but please do not say the dash like a minus sign.", - "file": "examples/example_05.wav", - "seconds": 5.941333333333334, - "source_gallery": "INFLECT_MICRO_5M_OOD_STRESS_CANDIDATES_V1/F_RECOVERY_FINAL" - }, - { - "id": "example_06", - "text": "I appreciate the honesty, but that explanation sounded weirdly dramatic for a Tuesday morning.", - "file": "examples/example_06.wav", - "seconds": 4.693333333333333, - "source_gallery": "INFLECT_MICRO_5M_OOD_STRESS_CANDIDATES_V1/F_RECOVERY_FINAL" - }, - { - "id": "example_07", - "text": "Could you whisper the first part, then brighten up when you say, 'we finally solved it'?", - "file": "examples/example_07.wav", - "seconds": 4.373333333333333, - "source_gallery": "INFLECT_MICRO_5M_OOD_STRESS_CANDIDATES_V1/F_RECOVERY_FINAL" - }, - { - "id": "example_08", - "text": "The dermatologist, the anesthesiologist, and the statistician all disagreed about February.", - "file": "examples/example_08.wav", - "seconds": 4.8853333333333335, - "source_gallery": "INFLECT_MICRO_5M_OOD_STRESS_CANDIDATES_V1/F_RECOVERY_FINAL" - } -] \ No newline at end of file +[ + { + "id": "example_01", + "text": "\"Did the timing change?\" she answered. \"Then why did Logan leave?\"", + "file": "examples/example_01.wav", + "seconds": 3.168 + }, + { + "id": "example_02", + "text": "Who puts a parking meter next to an ER label?", + "file": "examples/example_02.wav", + "seconds": 2.112 + }, + { + "id": "example_03", + "text": "Please say neighborhood, statistics, and anesthesiologist clearly, without rushing through the middle syllables.", + "file": "examples/example_03.wav", + "seconds": 5.536 + }, + { + "id": "example_04", + "text": "I said 91, not 306, which is a very different number.", + "file": "examples/example_04.wav", + "seconds": 3.5946666666666665 + }, + { + "id": "example_05", + "text": "The inference path looked natural, but the decoder still needed a smoother transition before Marcus approved the final test.", + "file": "examples/example_05.wav", + "seconds": 6.026666666666666 + }, + { + "id": "example_06", + "text": "The appointment moved to 1:25, the invoice was $674.96, and the archive was labeled 1998.", + "file": "examples/example_06.wav", + "seconds": 7.1786666666666665 + }, + { + "id": "example_07", + "text": "If Logan sounded uneasy, then it happened near Long Beach, and the pause has to carry that.", + "file": "examples/example_07.wav", + "seconds": 4.458666666666667 + }, + { + "id": "example_08", + "text": "The word aluminum should not steal attention from the softer ending after entrepreneur.", + "file": "examples/example_08.wav", + "seconds": 3.968 + } +] diff --git a/inference.py b/inference.py index 77fc350..bfcc712 100644 --- a/inference.py +++ b/inference.py @@ -45,7 +45,7 @@ def load_acoustic(path: Path, device: torch.device) -> tuple[MicroFastSpeech, di model.load_state_dict(ckpt["model"]) model.eval() params = int(ckpt.get("params") or sum(p.numel() for p in model.parameters())) - return model, ckpt.get("speakers") or {"qwen3_mark": 0}, params + return model, ckpt.get("speakers") or {"mark": 0}, params def load_vocoder(path: Path, device: torch.device) -> tuple[HifiGanGenerator, int]: @@ -91,7 +91,7 @@ def synthesize( phone = phone.unsqueeze(0).to(device) tone = tone.unsqueeze(0).to(device) lang = lang.unsqueeze(0).to(device) - speaker = torch.LongTensor([int(speakers.get("qwen3_mark", 0))]).to(device) + speaker = torch.LongTensor([int(speakers.get("mark", next(iter(speakers.values()), 0)))]).to(device) mel = acoustic.infer( phone, tone, diff --git a/model_summary.json b/model_summary.json index 7857a5c..b5986cc 100644 --- a/model_summary.json +++ b/model_summary.json @@ -1,7 +1,7 @@ { "model_name": "Inflect-Nano-v1", "language": "English", - "speaker": "qwen3_mark", + "speaker": "mark", "sample_rate": 24000, "n_mels": 80, "acoustic_params": 3465125, @@ -73,6 +73,6 @@ ], "activation": "snake" }, - "acoustic_checkpoint": "D:\\Inflect-Storage\\Inflect-New-offload\\outputs\\inflect_micro_fastspeech_v10_curriculum\\mark_generalization_v2\\overnight_recovery_v1\\phaseD_predictor_tail_800\\inflect-micro-fastspeech-800.pt", - "vocoder_checkpoint": "D:\\Inflect-Storage\\Inflect-New-offload\\outputs\\hifigan_oracle_v1\\snake_v2mid_final_polish_v1\\hifigan-snake_v2mid-165000.pt" -} \ No newline at end of file + "acoustic_checkpoint": "weights/inflect_nano_v1_acoustic.pt", + "vocoder_checkpoint": "weights/inflect_nano_v1_vocoder.pt" +} diff --git a/tiny_tts/__pycache__/__init__.cpython-312.pyc b/tiny_tts/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..79337d75c8d67300386c4a4756d7d9010a33cc29 GIT binary patch literal 5587 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 F?gzlq8d?AV literal 0 HcmV?d00001 diff --git a/tiny_tts/alignment/__pycache__/core.cpython-312.pyc b/tiny_tts/alignment/__pycache__/core.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..22409f2f21370d7da5a734be01f89e16a06b9829 GIT binary patch literal 1787 zcmb7EO-vg{6rTMvwig@Q!2~BjAd~`9N#hWx6roCvaU~$4irP~|WG&vsESNRyF4RWr zib#!OtEgQ&QDdqcmYXATh}0g)t+`dIBE>?AR@)qq+6z?=AaY6%?HjWW2&t+%mfyaa z_r33Z^JaE`@p#+_hVbQE@h=*o-|(b9SlcUF@9Y1U9z;Sv2 z+Hraf0T)l)C66sn-lb-!5C8%1{Ga%L;m4dd<9{HwY~4J?Q%~qE>Zm@?e1*1bDYuv` z(eK#9v&lW^2l~99w473UF{{p|C5w^LNimf;xqaMNOmx@>&3cG5GzXK@gD0@S9LvOPCXWr!S`Yt-C4y$YIg zp5r>2>jY~CV&3DJ+Hh1CAC>0TysI$PT$o|YK77?xN8mWHW0iKS{sgt-z}uuXY2Nuh zgk(x%a*dK(bJj9|O>3GVYx`)_ns}myVIg+p!ExkR$p<;CNyV_nOt2cZO&AV&bPeuGBqt28>^ujV@9zD}QbH%x0S>D;xpGqPJoE^1F9DBzBI{Q{&7U;NqJGDuj9Zw5KN4QNcwTex zM8>yc?{66WjKwIk+@fGHGAAVkixMT(q87Le7*Xo?Sre^(SA(N*~UyHs}bmbY-8_>grWS)BG?1tK2I@|INJ!tyQ z=v=WO&;0Ih(UtGc`i3(YNub9;*k>ww5EM6|?KT4aaWR2VmMS8ewB;bEwi) z;U4!GBh~iH`X{C@sB>k%&fjMrDaLSRXy-z>>I*+$4??IVO6*f8(DtSS1eY#zj)~pYc7xb(6`2DT1^N!c$b0?}`V7|*zHG}2)0{=kiK<1fq(vUz z1aw3_()@Bt_*i})ruh4%6u|6L1VQ|Y8uuNDWY>cC zLU%$Y?OluA8^1GdIz9LxOOevjMt3<CvjQ_4NGE#W0TjM&u2cZtokvizE-4JBf>j!MazI`VamNuy_Cf literal 0 HcmV?d00001 diff --git a/tiny_tts/models/__pycache__/__init__.cpython-312.pyc b/tiny_tts/models/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c84a6c751ccb41dad2d810b9ebe34d85c708b80c GIT binary patch literal 226 zcmX@j%ge<81gUkuGPQy9V-N=hn4pZ$0zk%eh7^Vr#vF!R#wbQchDs()=9i2>VNJ$c z0%7@?$*IAWc_kUC#hF#9MShx0x44TD{32$c!j%l4LB{>^a%uCBjO)k+5F3B%S zOizu;NQ*B@%}GrxPA!JZ`6cG%>y{bDlw{^r#+Q^7$K>Xxq~;XI#K&jmWtPOp>lIYq i;;;b$KK205n~#Q4C>$jEq)L9>Vr$N>OdK|XT; literal 0 HcmV?d00001 diff --git a/tiny_tts/models/__pycache__/synthesizer.cpython-312.pyc b/tiny_tts/models/__pycache__/synthesizer.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..07e18320e9fd3445765c04ff0c3ef8069a2119ff GIT binary patch literal 28876 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 literal 0 HcmV?d00001 diff --git a/tiny_tts/nn/__pycache__/__init__.cpython-312.pyc b/tiny_tts/nn/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..50e39a0c0ad253c9e69aef0b2e2374d4827e2bf7 GIT binary patch literal 167 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 b&wl?QMIsMh(C>ztb<@5n-&Yg_$r%1G4&$>H literal 0 HcmV?d00001 diff --git a/tiny_tts/nn/__pycache__/commons.cpython-312.pyc b/tiny_tts/nn/__pycache__/commons.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..940015bdd99192d6c8f51206a15e52ca52d604c5 GIT binary patch literal 9557 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 iHeGd0IurV}s@@&| literal 0 HcmV?d00001 diff --git a/tiny_tts/nn/__pycache__/transforms.cpython-312.pyc b/tiny_tts/nn/__pycache__/transforms.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1640f7bbf99ecb8d61a5fc8baf431b58e8a1aa94 GIT binary patch literal 6956 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 Tt*uI3%w#|L{@mWw?Q;JI8!P^Y literal 0 HcmV?d00001 diff --git a/tiny_tts/text/english_utils/__pycache__/__init__.cpython-312.pyc b/tiny_tts/text/english_utils/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f6a092ebb465337fac1e032c94e66620c7f4721c GIT binary patch literal 183 zcmX@j%ge<81Zj1@GC}lX5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!3UjfF@ytuhNlh-% z4KB$qN=#3U$w-SYO3g`4EKV(k%lRed$Hd2H=4F<|$LkeT-r}&y%}*)KNwq6t1zN)h#Kj=SM`lJw#v*1Q3jllSG1mY9 literal 0 HcmV?d00001 diff --git a/tiny_tts/text/english_utils/__pycache__/abbreviations.cpython-312.pyc b/tiny_tts/text/english_utils/__pycache__/abbreviations.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd0f9f671a4a70fcec3e50ba505d027449af0cc6 GIT binary patch literal 1114 zcmZ8g&uvazO)!O69^WAza|Z8#^E+Px9yaX1@1h-kW{Ab7u+2 z8h^Y`pF05m8}iYLn~RM;EgnDuiN&A_iG3RGLToqbcR2v)0YZy>w_Dm-!YABHtK9f9+@NPq%)VuCTHODx5XLLLpWIdeJJI|ytr4OzsSx?J1hu04TGT+kx|+boI)5u_<_pRxCsPX8Rv@CL(J zjnC3sh?*GAHEIGGM)YnzomC>9kIzqrD&>ncrDSL_hRB;Nm2fN|N zZz$PXkT^!ksaqhY2(H6(f26N&c3%VSL00=BWpBV(6I6{BJhnq6grI|C8v*)LOIW;>i z4%5jXZ(wO_L7L$o6+akx@pzUe9fl{wPejduyhyO-SeEqycC43nl?xl*7rX6smsWj? zk{61%t2e6mO3UY#uROf)bZq~h-~T=J*VL*v`DpUdxqpv6bAMd3NxW{{p1|1KqrNrv P?#(1IX+H9$iIeUJ(<(R? literal 0 HcmV?d00001 diff --git a/tiny_tts/text/english_utils/__pycache__/number_norm.cpython-312.pyc b/tiny_tts/text/english_utils/__pycache__/number_norm.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c2109e368d5c0c9c377f9798e2a04ad2fa9ce4cc GIT binary patch literal 4689 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 Ww+hrv@z None: device = torch.device(args.device) rows = load_rows(args.durations_jsonl, args.max_rows) - speakers = {voice: idx for idx, voice in enumerate(sorted({str(r.get("voice_id") or "qwen3_mark") for r in rows}))} + speakers = {voice: idx for idx, voice in enumerate(sorted({str(r.get("voice_id") or "mark") for r in rows}))} max_phone_id = max(max(map(int, r["phone_ids"])) for r in rows) max_tone_id = max(max(map(int, r["tone_ids"])) for r in rows) max_lang_id = max(max(map(int, r["lang_ids"])) for r in rows) @@ -901,7 +901,7 @@ def train(args: argparse.Namespace) -> None: use_group_duration_planner=args.group_duration_planner, ) for row in rows: - row["speaker_id"] = speakers[str(row.get("voice_id") or "qwen3_mark")] + row["speaker_id"] = speakers[str(row.get("voice_id") or "mark")] random.Random(args.seed).shuffle(rows) model = MicroFastSpeech(cfg).to(device) @@ -981,7 +981,7 @@ def train(args: argparse.Namespace) -> None: predicted_prosody_delta_loss = torch.zeros((), device=device) if args.predicted_prosody_mel_weight > 0.0 or args.predicted_prosody_delta_weight > 0.0: # Train the predictor heads against the acoustic result they produce at - # inference, while retaining teacher durations so this path remains + # inference, while retaining reference durations so this path remains # differentiable and isolates prosody exposure bias. predicted_conditioning = model(phone, tone, lang, speaker, durations) if args.predicted_prosody_mel_weight > 0.0: diff --git a/weights/inflect_nano_v1_acoustic.pt b/weights/inflect_nano_v1_acoustic.pt index e76b4fb..d342dc7 100644 --- a/weights/inflect_nano_v1_acoustic.pt +++ b/weights/inflect_nano_v1_acoustic.pt @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e439601fa3d327d4374573604f32297d81d58cda0157d369f89fe411bf445e28 +oid sha256:0129f730a25a1e44d1799a1d47166c9a3a5644e58fb84a3b554d5c036827ec89 size 13925174