diff --git a/DISCLAIMER b/DISCLAIMER
old mode 100644
new mode 100755
diff --git a/Dockerfile b/Dockerfile
old mode 100644
new mode 100755
diff --git a/INDEX_MODEL_LICENSE b/INDEX_MODEL_LICENSE
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/README_EN.md b/README_EN.md
old mode 100644
new mode 100755
diff --git a/api_example.py b/api_example.py
old mode 100644
new mode 100755
diff --git a/api_server.py b/api_server.py
old mode 100644
new mode 100755
diff --git a/assets/jay_promptvn.wav b/assets/jay_promptvn.wav
old mode 100644
new mode 100755
diff --git a/assets/speaker.json b/assets/speaker.json
old mode 100644
new mode 100755
diff --git a/assets/vo_card_klee_endOfGame_fail_01.wav b/assets/vo_card_klee_endOfGame_fail_01.wav
old mode 100644
new mode 100755
diff --git a/convert_hf_format.py b/convert_hf_format.py
old mode 100644
new mode 100755
diff --git a/convert_hf_format.sh b/convert_hf_format.sh
old mode 100644
new mode 100755
diff --git a/docker-compose.yaml b/docker-compose.yaml
old mode 100644
new mode 100755
diff --git a/examples/cases.jsonl b/examples/cases.jsonl
old mode 100644
new mode 100755
diff --git a/examples/emo_hate.wav b/examples/emo_hate.wav
old mode 100644
new mode 100755
diff --git a/examples/emo_sad.wav b/examples/emo_sad.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_01.wav b/examples/voice_01.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_02.wav b/examples/voice_02.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_03.wav b/examples/voice_03.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_04.wav b/examples/voice_04.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_05.wav b/examples/voice_05.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_06.wav b/examples/voice_06.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_07.wav b/examples/voice_07.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_08.wav b/examples/voice_08.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_09.wav b/examples/voice_09.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_10.wav b/examples/voice_10.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_11.wav b/examples/voice_11.wav
old mode 100644
new mode 100755
diff --git a/examples/voice_12.wav b/examples/voice_12.wav
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/ECAPA_TDNN.py b/indextts/BigVGAN/ECAPA_TDNN.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/__init__.py b/indextts/BigVGAN/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/activations.py b/indextts/BigVGAN/activations.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/cuda/.gitignore b/indextts/BigVGAN/alias_free_activation/cuda/.gitignore
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/cuda/__init__.py b/indextts/BigVGAN/alias_free_activation/cuda/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/cuda/activation1d.py b/indextts/BigVGAN/alias_free_activation/cuda/activation1d.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/cuda/anti_alias_activation.cpp b/indextts/BigVGAN/alias_free_activation/cuda/anti_alias_activation.cpp
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/cuda/anti_alias_activation_cuda.cu b/indextts/BigVGAN/alias_free_activation/cuda/anti_alias_activation_cuda.cu
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/cuda/compat.h b/indextts/BigVGAN/alias_free_activation/cuda/compat.h
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/cuda/load.py b/indextts/BigVGAN/alias_free_activation/cuda/load.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/cuda/type_shim.h b/indextts/BigVGAN/alias_free_activation/cuda/type_shim.h
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/torch/__init__.py b/indextts/BigVGAN/alias_free_activation/torch/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/torch/act.py b/indextts/BigVGAN/alias_free_activation/torch/act.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/torch/filter.py b/indextts/BigVGAN/alias_free_activation/torch/filter.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_activation/torch/resample.py b/indextts/BigVGAN/alias_free_activation/torch/resample.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_torch/__init__.py b/indextts/BigVGAN/alias_free_torch/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_torch/act.py b/indextts/BigVGAN/alias_free_torch/act.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_torch/filter.py b/indextts/BigVGAN/alias_free_torch/filter.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/alias_free_torch/resample.py b/indextts/BigVGAN/alias_free_torch/resample.py
old mode 100644
new mode 100755
index 1cf4d54..f762cf5
--- a/indextts/BigVGAN/alias_free_torch/resample.py
+++ b/indextts/BigVGAN/alias_free_torch/resample.py
@@ -20,14 +20,16 @@ class UpSample1d(nn.Module):
half_width=0.6 / ratio,
kernel_size=self.kernel_size)
self.register_buffer("filter", filter)
+ self.stride_2d = (self.stride, 1)
# x: [B, C, T]
def forward(self, x):
_, C, _ = x.shape
x = F.pad(x, (self.pad, self.pad), mode='replicate')
- x = self.ratio * F.conv_transpose1d(
- x, self.filter.expand(C, -1, -1), stride=self.stride, groups=C)
+ x = self.ratio * F.conv_transpose2d(
+ x.unsqueeze(-1), self.filter.expand(C, -1, -1).unsqueeze(-1), stride=self.stride_2d, groups=C)
+ x = x.squeeze(-1)
x = x[..., self.pad_left:-self.pad_right]
return x
@@ -46,4 +48,4 @@ class DownSample1d(nn.Module):
def forward(self, x):
xx = self.lowpass(x)
- return xx
\ No newline at end of file
+ return xx
diff --git a/indextts/BigVGAN/bigvgan.py b/indextts/BigVGAN/bigvgan.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/models.py b/indextts/BigVGAN/models.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/nnet/CNN.py b/indextts/BigVGAN/nnet/CNN.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/nnet/__init__.py b/indextts/BigVGAN/nnet/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/nnet/linear.py b/indextts/BigVGAN/nnet/linear.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/nnet/normalization.py b/indextts/BigVGAN/nnet/normalization.py
old mode 100644
new mode 100755
diff --git a/indextts/BigVGAN/utils.py b/indextts/BigVGAN/utils.py
old mode 100644
new mode 100755
diff --git a/indextts/__init__.py b/indextts/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/cli.py b/indextts/cli.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/__init__.py b/indextts/gpt/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/conformer/__init__.py b/indextts/gpt/conformer/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/conformer/attention.py b/indextts/gpt/conformer/attention.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/conformer/embedding.py b/indextts/gpt/conformer/embedding.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/conformer/subsampling.py b/indextts/gpt/conformer/subsampling.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/conformer_encoder.py b/indextts/gpt/conformer_encoder.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/index_tts_gpt2_vllm_v1.py b/indextts/gpt/index_tts_gpt2_vllm_v1.py
old mode 100644
new mode 100755
index 2a26b85..9966f97
--- a/indextts/gpt/index_tts_gpt2_vllm_v1.py
+++ b/indextts/gpt/index_tts_gpt2_vllm_v1.py
@@ -11,11 +11,10 @@ from vllm.config import CacheConfig, VllmConfig
from vllm.distributed.parallel_state import (
get_pp_group, get_tensor_model_parallel_world_size)
from vllm.model_executor.layers.logits_processor import LogitsProcessor
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
from vllm.model_executor.layers.vocab_parallel_embedding import (
ParallelLMHead, VocabParallelEmbedding)
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
-from vllm.model_executor.sampling_metadata import SamplingMetadata
+from vllm.v1.sample.metadata import SamplingMetadata
from vllm.sequence import IntermediateTensors
from vllm.model_executor.models.interfaces import SupportsPP
@@ -264,7 +263,6 @@ class GPT2TTSModel(nn.Module, SupportsPP, SupportsMultiModal):
bias=True)
self.logits_processor = LogitsProcessor(config.vocab_size)
- self.sampler = get_sampler()
self.make_empty_intermediate_tensors = (
self.transformer.make_empty_intermediate_tensors)
@@ -316,7 +314,7 @@ class GPT2TTSModel(nn.Module, SupportsPP, SupportsMultiModal):
if multimodal_embeddings is not None \
and len(multimodal_embeddings) != 0:
inputs_embeds = merge_multimodal_embeddings(
- input_ids, inputs_embeds, multimodal_embeddings,
+ input_ids, inputs_embeds.float(), multimodal_embeddings,
PLACEHOLDER_TOKEN_ID)
return inputs_embeds
@@ -353,17 +351,9 @@ class GPT2TTSModel(nn.Module, SupportsPP, SupportsMultiModal):
hidden_states: torch.Tensor,
sampling_metadata: SamplingMetadata,
) -> Optional[torch.Tensor]:
- logits = self.logits_processor(self.lm_head, hidden_states,
- sampling_metadata)
+ logits = self.logits_processor(self.lm_head, hidden_states)
return logits
- def sample(
- self,
- logits: torch.Tensor,
- sampling_metadata: SamplingMetadata,
- ) -> Optional[SamplerOutput]:
- next_tokens = self.sampler(logits, sampling_metadata)
- return next_tokens
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]) -> Set[str]:
params_dict = dict(self.named_parameters(remove_duplicate=False))
diff --git a/indextts/gpt/model.py b/indextts/gpt/model.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/model_v2.py b/indextts/gpt/model_v2.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/model_vllm.py b/indextts/gpt/model_vllm.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/model_vllm_v2.py b/indextts/gpt/model_vllm_v2.py
old mode 100644
new mode 100755
diff --git a/indextts/gpt/perceiver.py b/indextts/gpt/perceiver.py
old mode 100644
new mode 100755
diff --git a/indextts/infer.py b/indextts/infer.py
old mode 100644
new mode 100755
diff --git a/indextts/infer_vllm.py b/indextts/infer_vllm.py
old mode 100644
new mode 100755
index 4a4b541..426165a
--- a/indextts/infer_vllm.py
+++ b/indextts/infer_vllm.py
@@ -8,6 +8,8 @@ from typing import List
import numpy as np
import sentencepiece as spm
import torch
+import torch_npu
+from torch_npu.contrib import transfer_to_npu
import torchaudio
from torch.nn.utils.rnn import pad_sequence
from omegaconf import OmegaConf
@@ -27,6 +29,9 @@ from indextts.utils.front import TextNormalizer, TextTokenizer
import matplotlib.pyplot as plt
+torch.npu.config.allow_internal_format = False
+os.environ["VLLM_USE_V1"] = "1"
+torch.npu.set_compile_mode(jit_compile=False)
# def fade_in_out(wav, fade_in=int(24000*0.05), fade_out=int(24000*0.05)):
# wav = wav.astype(np.float32)
@@ -104,11 +109,12 @@ class IndexTTS:
vllm_dir = os.path.join(model_dir, "gpt")
engine_args = AsyncEngineArgs(
- model=vllm_dir,
- tensor_parallel_size=1,
- dtype="auto",
- gpu_memory_utilization=gpu_memory_utilization,
- # enforce_eager=True,
+ model=vllm_dir,
+ tensor_parallel_size=1,
+ dtype="auto",
+ gpu_memory_utilization=gpu_memory_utilization,
+ compilation_config={"cudagraph_mode": "FULL_DECODE_ONLY"},
+ # async_scheduling=True
)
indextts_vllm = AsyncLLM.from_engine_args(engine_args)
@@ -123,6 +129,7 @@ class IndexTTS:
self.gpt.eval()
print(">> GPT weights restored from:", self.gpt_path)
+ self.use_cuda_kernel = False
if self.use_cuda_kernel:
# preload the CUDA kernel for BigVGAN
try:
@@ -141,7 +148,7 @@ class IndexTTS:
self.bigvgan = self.bigvgan.to(self.device)
# remove weight norm on eval mode
self.bigvgan.remove_weight_norm()
- self.bigvgan.eval()
+ self.bigvgan.eval().half()
print(">> bigvgan weights restored from:", self.bigvgan_path)
self.bpe_path = os.path.join(self.model_dir, "bpe.model") # self.cfg.dataset["bpe_model"]
self.normalizer = TextNormalizer()
@@ -192,11 +199,11 @@ class IndexTTS:
auto_conditioning = []
for ap_ in audio_prompt:
audio, sr = torchaudio.load(ap_)
- audio = torch.mean(audio, dim=0, keepdim=True)
+ audio = torch.mean(audio.to(self.device), dim=0, keepdim=True)
if audio.shape[0] > 1:
audio = audio[0].unsqueeze(0)
- audio = torchaudio.transforms.Resample(sr, 24000)(audio)
- cond_mel = MelSpectrogramFeatures()(audio).to(self.device)
+ audio = torchaudio.transforms.Resample(sr, 24000).to(self.device)(audio)
+ cond_mel = MelSpectrogramFeatures().to(self.device)(audio)
# cond_mel_frame = cond_mel.shape[-1]
auto_conditioning.append(cond_mel)
@@ -214,7 +221,7 @@ class IndexTTS:
speech_conditioning_latent_ = self.gpt.get_conditioning(
cond_mel, # .half()
torch.tensor([cond_mel.shape[-1]], device=self.device)
- )
+ ).to(torch.bfloat16)
speech_conditioning_latent.append(speech_conditioning_latent_)
speech_conditioning_latent = torch.stack(speech_conditioning_latent).sum(dim=0)
speech_conditioning_latent = speech_conditioning_latent / len(auto_conditioning)
@@ -250,16 +257,17 @@ class IndexTTS:
return_latent=True, clip_inputs=False)
m_start_time = time.perf_counter()
- wav, _ = self.bigvgan(latent, [ap_.transpose(1, 2) for ap_ in auto_conditioning])
+ with torch.autocast(device_type="npu",dtype=torch.float16):
+ wav, _ = self.bigvgan(latent, [ap_.transpose(1, 2) for ap_ in auto_conditioning])
bigvgan_time += time.perf_counter() - m_start_time
wav = wav.squeeze(1)
wav = torch.clamp(32767 * wav, -32767.0, 32767.0)
print(f"wav shape: {wav.shape}", "min:", wav.min(), "max:", wav.max())
# wavs.append(wav[:, :-512])
- wavs.append(wav.cpu()) # to cpu before saving
+ wavs.append(wav)
+ end_time = time.perf_counter() # to cpu before saving
torch.cuda.empty_cache()
- end_time = time.perf_counter()
wav = torch.cat(wavs, dim=1)
wav_length = wav.shape[-1] / sampling_rate
@@ -332,7 +340,8 @@ class IndexTTS:
return_latent=True, clip_inputs=False)
m_start_time = time.perf_counter()
- wav, _ = self.bigvgan(latent, [ap_.transpose(1, 2) for ap_ in auto_conditioning])
+ with torch.autocast(device_type="npu",dtype=torch.float16):
+ wav, _ = self.bigvgan(latent, [ap_.transpose(1, 2) for ap_ in auto_conditioning])
bigvgan_time += time.perf_counter() - m_start_time
wav = wav.squeeze(1)
@@ -363,11 +372,12 @@ class IndexTTS:
auto_conditioning = []
for ap_ in audio_paths:
audio, sr = torchaudio.load(ap_)
- audio = torch.mean(audio, dim=0, keepdim=True)
+ audio = torch.mean(audio.to(self.device), dim=0, keepdim=True)
if audio.shape[0] > 1:
audio = audio[0].unsqueeze(0)
- audio = torchaudio.transforms.Resample(sr, 24000)(audio)
- cond_mel = MelSpectrogramFeatures()(audio).to(self.device)
+ sampler = torchaudio.transforms.Resample(sr, 24000).to(self.device)
+ audio = sampler(audio)
+ cond_mel = MelSpectrogramFeatures().to(self.device)(audio)
# cond_mel_frame = cond_mel.shape[-1]
auto_conditioning.append(cond_mel)
diff --git a/indextts/infer_vllm_v2.py b/indextts/infer_vllm_v2.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/__init__.py b/indextts/s2mel/dac/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/__main__.py b/indextts/s2mel/dac/__main__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/model/__init__.py b/indextts/s2mel/dac/model/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/model/base.py b/indextts/s2mel/dac/model/base.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/model/dac.py b/indextts/s2mel/dac/model/dac.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/model/discriminator.py b/indextts/s2mel/dac/model/discriminator.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/model/encodec.py b/indextts/s2mel/dac/model/encodec.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/nn/__init__.py b/indextts/s2mel/dac/nn/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/nn/layers.py b/indextts/s2mel/dac/nn/layers.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/nn/loss.py b/indextts/s2mel/dac/nn/loss.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/nn/quantize.py b/indextts/s2mel/dac/nn/quantize.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/utils/__init__.py b/indextts/s2mel/dac/utils/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/utils/decode.py b/indextts/s2mel/dac/utils/decode.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/dac/utils/encode.py b/indextts/s2mel/dac/utils/encode.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/hf_utils.py b/indextts/s2mel/hf_utils.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/.ipynb_checkpoints/audio-checkpoint.py b/indextts/s2mel/modules/.ipynb_checkpoints/audio-checkpoint.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/.ipynb_checkpoints/commons-checkpoint.py b/indextts/s2mel/modules/.ipynb_checkpoints/commons-checkpoint.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/.ipynb_checkpoints/diffusion_transformer-checkpoint.py b/indextts/s2mel/modules/.ipynb_checkpoints/diffusion_transformer-checkpoint.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/.ipynb_checkpoints/flow_matching-checkpoint.py b/indextts/s2mel/modules/.ipynb_checkpoints/flow_matching-checkpoint.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/.ipynb_checkpoints/length_regulator-checkpoint.py b/indextts/s2mel/modules/.ipynb_checkpoints/length_regulator-checkpoint.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/alias_free_torch/__init__.py b/indextts/s2mel/modules/alias_free_torch/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/alias_free_torch/act.py b/indextts/s2mel/modules/alias_free_torch/act.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/alias_free_torch/filter.py b/indextts/s2mel/modules/alias_free_torch/filter.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/alias_free_torch/resample.py b/indextts/s2mel/modules/alias_free_torch/resample.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/audio.py b/indextts/s2mel/modules/audio.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/activations.py b/indextts/s2mel/modules/bigvgan/activations.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py b/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py b/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp b/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu b/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h b/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py b/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h b/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py b/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py b/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py b/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py b/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/bigvgan.py b/indextts/s2mel/modules/bigvgan/bigvgan.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/config.json b/indextts/s2mel/modules/bigvgan/config.json
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/env.py b/indextts/s2mel/modules/bigvgan/env.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/meldataset.py b/indextts/s2mel/modules/bigvgan/meldataset.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/bigvgan/utils.py b/indextts/s2mel/modules/bigvgan/utils.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/campplus/DTDNN.py b/indextts/s2mel/modules/campplus/DTDNN.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/campplus/classifier.py b/indextts/s2mel/modules/campplus/classifier.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/campplus/layers.py b/indextts/s2mel/modules/campplus/layers.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/commons.py b/indextts/s2mel/modules/commons.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/diffusion_transformer.py b/indextts/s2mel/modules/diffusion_transformer.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/encodec.py b/indextts/s2mel/modules/encodec.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/flow_matching.py b/indextts/s2mel/modules/flow_matching.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/gpt_fast/.ipynb_checkpoints/model-checkpoint.py b/indextts/s2mel/modules/gpt_fast/.ipynb_checkpoints/model-checkpoint.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/gpt_fast/generate.py b/indextts/s2mel/modules/gpt_fast/generate.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/gpt_fast/model.py b/indextts/s2mel/modules/gpt_fast/model.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/gpt_fast/quantize.py b/indextts/s2mel/modules/gpt_fast/quantize.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/hifigan/f0_predictor.py b/indextts/s2mel/modules/hifigan/f0_predictor.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/hifigan/generator.py b/indextts/s2mel/modules/hifigan/generator.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/layers.py b/indextts/s2mel/modules/layers.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/length_regulator.py b/indextts/s2mel/modules/length_regulator.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/__init__.py b/indextts/s2mel/modules/openvoice/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/api.py b/indextts/s2mel/modules/openvoice/api.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/attentions.py b/indextts/s2mel/modules/openvoice/attentions.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/checkpoints_v2/converter/config.json b/indextts/s2mel/modules/openvoice/checkpoints_v2/converter/config.json
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/commons.py b/indextts/s2mel/modules/openvoice/commons.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/mel_processing.py b/indextts/s2mel/modules/openvoice/mel_processing.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/models.py b/indextts/s2mel/modules/openvoice/models.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/modules.py b/indextts/s2mel/modules/openvoice/modules.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/openvoice_app.py b/indextts/s2mel/modules/openvoice/openvoice_app.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/se_extractor.py b/indextts/s2mel/modules/openvoice/se_extractor.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/transforms.py b/indextts/s2mel/modules/openvoice/transforms.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/openvoice/utils.py b/indextts/s2mel/modules/openvoice/utils.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/quantize.py b/indextts/s2mel/modules/quantize.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/rmvpe.py b/indextts/s2mel/modules/rmvpe.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/vocos/__init__.py b/indextts/s2mel/modules/vocos/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/vocos/heads.py b/indextts/s2mel/modules/vocos/heads.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/vocos/helpers.py b/indextts/s2mel/modules/vocos/helpers.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/vocos/loss.py b/indextts/s2mel/modules/vocos/loss.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/vocos/models.py b/indextts/s2mel/modules/vocos/models.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/vocos/modules.py b/indextts/s2mel/modules/vocos/modules.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/vocos/pretrained.py b/indextts/s2mel/modules/vocos/pretrained.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/vocos/spectral_ops.py b/indextts/s2mel/modules/vocos/spectral_ops.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/modules/wavenet.py b/indextts/s2mel/modules/wavenet.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/optimizers.py b/indextts/s2mel/optimizers.py
old mode 100644
new mode 100755
diff --git a/indextts/s2mel/wav2vecbert_extract.py b/indextts/s2mel/wav2vecbert_extract.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/__init__.py b/indextts/utils/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/arch_util.py b/indextts/utils/arch_util.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/checkpoint.py b/indextts/utils/checkpoint.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/common.py b/indextts/utils/common.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/feature_extractors.py b/indextts/utils/feature_extractors.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/front.py b/indextts/utils/front.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/__init__.py b/indextts/utils/maskgct/models/codec/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/amphion_codec/codec.py b/indextts/utils/maskgct/models/codec/amphion_codec/codec.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py b/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py b/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py b/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py b/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py b/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py b/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/codec_dataset.py b/indextts/utils/maskgct/models/codec/codec_dataset.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/codec_inference.py b/indextts/utils/maskgct/models/codec/codec_inference.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/codec_sampler.py b/indextts/utils/maskgct/models/codec/codec_sampler.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/codec_trainer.py b/indextts/utils/maskgct/models/codec/codec_trainer.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/__init__.py b/indextts/utils/maskgct/models/codec/facodec/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py b/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py b/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py b/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py b/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py b/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py b/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py b/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py b/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 b/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py b/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py b/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/commons.py b/indextts/utils/maskgct/models/codec/facodec/modules/commons.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py b/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/layers.py b/indextts/utils/maskgct/models/codec/facodec/modules/layers.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py b/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py b/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py b/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/facodec/optimizer.py b/indextts/utils/maskgct/models/codec/facodec/optimizer.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py b/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/kmeans/vocos.py b/indextts/utils/maskgct/models/codec/kmeans/vocos.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/melvqgan/melspec.py b/indextts/utils/maskgct/models/codec/melvqgan/melspec.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/README.md b/indextts/utils/maskgct/models/codec/ns3_codec/README.md
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py b/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py b/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py b/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py b/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py b/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py b/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py b/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py b/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py b/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py b/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py b/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py b/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/model.py b/indextts/utils/maskgct/models/codec/speechtokenizer/model.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py b/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py b/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt b/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py b/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py b/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/maskgct_utils.py b/indextts/utils/maskgct_utils.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/text_utils.py b/indextts/utils/text_utils.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/typical_sampling.py b/indextts/utils/typical_sampling.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/utils.py b/indextts/utils/utils.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/webui_utils.py b/indextts/utils/webui_utils.py
old mode 100644
new mode 100755
diff --git a/indextts/utils/xtransformers.py b/indextts/utils/xtransformers.py
old mode 100644
new mode 100755
diff --git a/indextts/vqvae/__init__.py b/indextts/vqvae/__init__.py
old mode 100644
new mode 100755
diff --git a/indextts/vqvae/xtts_dvae.py b/indextts/vqvae/xtts_dvae.py
old mode 100644
new mode 100755
diff --git a/patch_vllm.py b/patch_vllm.py
old mode 100644
new mode 100755
diff --git a/requirements.txt b/requirements.txt
old mode 100644
new mode 100755
diff --git a/simple_test.py b/simple_test.py
old mode 100644
new mode 100755
diff --git a/tools/i18n/i18n.py b/tools/i18n/i18n.py
old mode 100644
new mode 100755
diff --git a/tools/i18n/locale/en_US.json b/tools/i18n/locale/en_US.json
old mode 100644
new mode 100755
diff --git a/tools/i18n/scan_i18n.py b/tools/i18n/scan_i18n.py
old mode 100644
new mode 100755
diff --git a/webui.py b/webui.py
old mode 100644
new mode 100755
diff --git a/webui_v2.py b/webui_v2.py
old mode 100644
new mode 100755