Skip to content

[Bug] about index tts 2.5 #1611

Description

@zuiaiyutu

Before filing

  • I searched existing issues and this isn't a duplicate.
  • I'm on the latest release (or main) — older builds may already be fixed.

What happened?

I encountered two issues when using the IndexTTS 2.5 engine in Voice Studio.

1. IndexTTS installation fails because of config_v2_5.yaml

During the installation of IndexTTS through Voice Studio, the installation failed because the config_v2_5.yaml file provided by Voice Studio had an incorrect filename and/or configuration content.

The official IndexTTS project has already fixed this issue on Hugging Face. The workaround is to download the config.yaml configuration file provided by the IndexTTS team from Hugging Face, rename it to config_v2_5.yaml, and replace the existing file. After doing this, IndexTTS can start normally.

It appears that Voice Studio may be using an outdated or incorrect version of this configuration file.

2. Long-text generation causes Voice Studio to terminate the IndexTTS process

After IndexTTS is successfully installed and started, short text can be converted to audio normally.

However, when I try to generate audio from a long piece of text, IndexTTS itself appears to continue running normally and is still processing the request. The problem is that Voice Studio terminates the IndexTTS process because it considers the process unresponsive after 60 seconds.

I tried to fix this myself by modifying subprocess_backend.py and changing:

RECV_TIMEOUT_S = 60

to:

RECV_TIMEOUT_S = 3600

However, this did not resolve the problem. When I submit long text and generate a long audio file, the same error still occurs and the IndexTTS process is still terminated.

Steps to reproduce

Issue 1 – config_v2_5.yaml

  1. Install the IndexTTS 2.5 engine through Voice Studio.
  2. Start the installation process.
  3. The installation fails due to the config_v2_5.yaml configuration file.
  4. Replace the problematic config_v2_5.yaml with the official IndexTTS team's config.yaml from Hugging Face.
  5. Rename it to config_v2_5.yaml.
  6. Start IndexTTS again.
  7. IndexTTS starts and works normally.

Issue 2 – Long-text generation

  1. Install and start the IndexTTS engine through Voice Studio.
  2. Generate audio from a short text.
  3. Confirm that short-text generation works normally.
  4. Submit a significantly longer text for TTS generation.
  5. IndexTTS continues processing the request, but the generation takes longer than 60 seconds.
  6. Voice Studio terminates the IndexTTS process because it considers the process to have timed out.
  7. The long audio generation therefore fails.

I also tried changing RECV_TIMEOUT_S = 60 to RECV_TIMEOUT_S = 3600 in subprocess_backend.py, but the issue persisted.

What did you expect instead?

fix bug

Operating system

Windows (x64)

How did you install it?

Desktop app (installer / AppImage)

Version

v 0.5.0--130

Compute device

NVIDIA GPU (CUDA)

Active TTS/ASR engine

inedx tts 2.5

Logs / diagnostic bundle

2026-08-20 17:26:25,715 INFO [omnivoice.subprocess_backend] [indextts2] spawning sidecar: python.exe main.py

2026-08-20 17:26:25,814 INFO [omnivoice.subprocess_backend] [indextts2] sidecar ready

2026-08-20 17:26:36,492 INFO [omnivoice.subprocess_backend] [indextts2] >> Low-VRAM mode enabled (8.0 GB < 10 GB), long text will be split into chunks

2026-08-20 17:26:52,989 INFO [omnivoice.subprocess_backend] [indextts2] >> GPT weights restored from: C:\Users\Administrator\AppData\Roaming\OmniVoice\engines\indextts2\index-tts-2.5\checkpoints\gpt.pth

2026-08-20 17:26:52,990 INFO [omnivoice.subprocess_backend] [indextts2] GPT2InferenceModel has generative capabilities, as `prepare_inputs_for_generation` is explicitly overwritten. However, it doesn't directly inherit from `GenerationMixin`. From 👉v4.50👈 onwards, `PreTrainedModel` will NOT inherit from `GenerationMixin`, and this model will lose the ability to call `generate` and other related functions.

2026-08-20 17:26:52,990 INFO [omnivoice.subprocess_backend] [indextts2]   - If you're using `trust_remote_code=True`, you can get rid of this warning by loading the model with an auto class. See https://huggingface.co/docs/transformers/en/model_doc/auto#auto-classes

2026-08-20 17:26:52,990 INFO [omnivoice.subprocess_backend] [indextts2]   - If you are the owner of the model architecture code, please modify your model class such that it inherits from `GenerationMixin` (after `PreTrainedModel`, otherwise you'll get an exception).

2026-08-20 17:26:52,991 INFO [omnivoice.subprocess_backend] [indextts2]   - If you are not the owner of the model architecture class, please contact the model code owner to update it.

2026-08-20 17:26:57,370 INFO [omnivoice.subprocess_backend] [indextts2] >> semantic_codec weights restored from: C:\Users\Administrator\AppData\Roaming\OmniVoice\engines\indextts2\index-tts-2.5\checkpoints\codec.pth

2026-08-20 17:26:57,573 INFO [omnivoice.subprocess_backend] [indextts2] >> semantic_codec weights restored cost:  1.6409492999991926

2026-08-20 17:26:58,727 INFO [omnivoice.subprocess_backend] [indextts2] cfm loaded

2026-08-20 17:26:58,838 INFO [omnivoice.subprocess_backend] [indextts2] length_regulator loaded

2026-08-20 17:26:59,098 INFO [omnivoice.subprocess_backend] [indextts2] >> s2mel weights restored from: C:\Users\Administrator\AppData\Roaming\OmniVoice\engines\indextts2\index-tts-2.5\checkpoints\s2mel.pth

2026-08-20 17:26:59,458 INFO [omnivoice.subprocess_backend] [indextts2] >> campplus_model weights restored from: C:\Users\Administrator\AppData\Roaming\OmniVoice\engines\indextts2\index-tts-2.5\checkpoints\hf_cache\campplus_cn_common.bin

2026-08-20 17:26:59,458 INFO [omnivoice.subprocess_backend] [indextts2] Loading config.json from local directory

2026-08-20 17:27:00,902 INFO [omnivoice.subprocess_backend] [indextts2] Loading weights from local directory

2026-08-20 17:27:01,552 INFO [omnivoice.subprocess_backend] [indextts2] Removing weight norm...

2026-08-20 17:27:01,587 INFO [omnivoice.subprocess_backend] [indextts2] >> bigvgan weights restored from: C:\Users\Administrator\AppData\Roaming\OmniVoice\engines\indextts2\index-tts-2.5\checkpoints\hf_cache\bigvgan

2026-08-20 17:27:03,349 INFO [omnivoice.subprocess_backend] [indextts2] >> starting inference...

2026-08-20 17:27:05,314 INFO [omnivoice.subprocess_backend] [indextts2] text after normalization: 轻轻的我走了,  正如我轻轻的来,  我轻轻的招手,  作别西天的云彩.

2026-08-20 17:27:05,437 INFO [omnivoice.subprocess_backend] [indextts2] Use the specified emotion vector

2026-08-20 17:27:05,597 INFO [omnivoice.subprocess_backend] [indextts2] Passing a tuple of `past_key_values` is deprecated and will be removed in Transformers v4.53.0. You should pass an instance of `Cache` instead, e.g. `past_key_values=DynamicCache.from_legacy_cache(past_key_values)`.

2026-08-20 17:27:21,158 INFO [omnivoice.subprocess_backend] [indextts2] 
  0%|          | 0/25 [00:00<?, ?it/s]
  4%|▍         | 1/25 [00:00<00:06,  3.53it/s]
 12%|█▏        | 3/25 [00:00<00:04,  5.23it/s]
 20%|██        | 5/25 [00:00<00:03,  6.02it/s]
 28%|██▊       | 7/25 [00:01<00:02,  6.42it/s]
 36%|███▌      | 9/25 [00:01<00:02,  6.66it/s]
 40%|████      | 10/25 [00:01<00:02,  6.91it/s]
 48%|████▊     | 12/25 [00:01<00:01,  7.13it/s]
 56%|█████▌    | 14/25 [00:04<00:06,  1.66it/s]
 64%|██████▍   | 16/25 [00:04<00:03,  2.27it/s]
 68%|██████▊   | 17/25 [00:05<00:03,  2.63it/s]
 72%|███████▏  | 18/25 [00:07<00:06,  1.16it/s]
 76%|███████▌  | 19/25 [00:07<00:04,  1.45it/s]
 80%|████████  | 20/25 [00:08<00:02,  1.81it/s]
 84%|████████▍ | 21/25 [00:08<00:01,  2.25it/s]
 92%|█████████▏| 23/25 [00:08<00:00,  3.23it/s]
100%|██████████| 25/25 [00:08<00:00,  4.05it/s]
100%|██████████| 25/25 [00:08<00:00,  2.87it/s]

2026-08-20 17:27:27,314 INFO [omnivoice.subprocess_backend] [indextts2] torch.Size([1, 132864])

2026-08-20 17:27:27,315 INFO [omnivoice.subprocess_backend] [indextts2] >> gpt_gen_time: 7.11 seconds

2026-08-20 17:27:27,315 INFO [omnivoice.subprocess_backend] [indextts2] >> gpt_forward_time: 0.00 seconds

2026-08-20 17:27:27,315 INFO [omnivoice.subprocess_backend] [indextts2] >> s2mel_time: 8.73 seconds

2026-08-20 17:27:27,315 INFO [omnivoice.subprocess_backend] [indextts2] >> bigvgan_time: 6.16 seconds

2026-08-20 17:27:27,316 INFO [omnivoice.subprocess_backend] [indextts2] >> Total inference time: 23.97 seconds

2026-08-20 17:27:27,316 INFO [omnivoice.subprocess_backend] [indextts2] >> Generated audio length: 6.03 seconds

2026-08-20 17:27:27,316 INFO [omnivoice.subprocess_backend] [indextts2] >> RTF: 3.9774

2026-08-20 17:27:27,316 INFO [omnivoice.subprocess_backend] [indextts2] >> starting inference...

2026-08-20 17:27:27,316 INFO [omnivoice.subprocess_backend] [indextts2] text after normalization: 那河畔的金柳,  是夕阳中的新娘,  波光里的艳影,  在我的心头荡漾.

2026-08-20 17:27:27,414 INFO [omnivoice.subprocess_backend] [indextts2] Use the specified emotion vector

2026-08-20 17:27:45,377 INFO [omnivoice.subprocess_backend] [indextts2] 
  0%|          | 0/25 [00:00<?, ?it/s]
  4%|▍         | 1/25 [00:00<00:05,  4.77it/s]
 12%|█▏        | 3/25 [00:00<00:03,  5.91it/s]
 16%|█▌        | 4/25 [00:03<00:23,  1.10s/it]
 20%|██        | 5/25 [00:03<00:18,  1.09it/s]
 28%|██▊       | 7/25 [00:04<00:10,  1.75it/s]
 32%|███▏      | 8/25 [00:04<00:08,  2.10it/s]
 36%|███▌      | 9/25 [00:04<00:06,  2.52it/s]
 48%|████▊     | 12/25 [00:05<00:03,  3.86it/s]
 52%|█████▏    | 13/25 [00:05<00:02,  4.09it/s]
 60%|██████    | 15/25 [00:05<00:02,  4.49it/s]
 64%|██████▍   | 16/25 [00:05<00:01,  4.64it/s]
 68%|██████▊   | 17/25 [00:06<00:01,  4.18it/s]
 72%|███████▏  | 18/25 [00:06<00:01,  4.84it/s]
 76%|███████▌  | 19/25 [00:10<00:06,  1.15s/it]
 84%|████████▍ | 21/25 [00:10<00:02,  1.36it/s]
 92%|█████████▏| 23/25 [00:10<00:00,  2.09it/s]
 96%|█████████▌| 24/25 [00:10<00:00,  2.25it/s]
100%|██████████| 25/25 [00:10<00:00,  2.28it/s]

2026-08-20 17:27:52,292 INFO [omnivoice.subprocess_backend] [indextts2] torch.Size([1, 138240])

2026-08-20 17:27:52,312 INFO [omnivoice.subprocess_backend] [indextts2] >> gpt_gen_time: 7.08 seconds

2026-08-20 17:27:52,313 INFO [omnivoice.subprocess_backend] [indextts2] >> gpt_forward_time: 0.00 seconds

2026-08-20 17:27:52,313 INFO [omnivoice.subprocess_backend] [indextts2] >> s2mel_time: 10.98 seconds

2026-08-20 17:27:52,313 INFO [omnivoice.subprocess_backend] [indextts2] >> bigvgan_time: 6.92 seconds

2026-08-20 17:27:52,313 INFO [omnivoice.subprocess_backend] [indextts2] >> Total inference time: 25.00 seconds

2026-08-20 17:27:52,313 INFO [omnivoice.subprocess_backend] [indextts2] >> Generated audio length: 6.27 seconds

2026-08-20 17:27:52,314 INFO [omnivoice.subprocess_backend] [indextts2] >> RTF: 3.9871

2026-08-20 17:27:52,314 INFO [omnivoice.subprocess_backend] [indextts2] >> starting inference...

2026-08-20 17:27:52,314 INFO [omnivoice.subprocess_backend] [indextts2] text after normalization: 软泥上的青荇,  油油的在水底招摇,  在康河的柔波里,  我甘心做一条水草!

2026-08-20 17:27:52,399 INFO [omnivoice.subprocess_backend] [indextts2] Use the specified emotion vector

2026-08-20 17:28:03,352 ERROR [omnivoice.subprocess_backend] [indextts2] sidecar exceeded recv timeout; killing

2026-08-20 17:28:03,852 INFO [omnivoice.subprocess_backend] [indextts2] 
  0%|          | 0/25 [00:00<?, ?it/s]
  4%|▍         | 1/25 [00:00<00:07,  3.08it/s]

2026-08-20 17:28:03,861 ERROR [omnivoice.generate] Streaming generation failed unexpectedly

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions