80 lines
2.9 KiB
Python

import platform
import os
from setuptools import find_packages, setup
# add fused `anti_alias_activation` cuda extension if CUDA is available
anti_alias_activation_cuda_ext = None
if platform.system() != "Darwin":
try:
from torch.utils import cpp_extension
if cpp_extension.CUDA_HOME is not None:
anti_alias_activation_cuda_ext = cpp_extension.CUDAExtension(
name="indextts.BigVGAN.alias_free_activation.cuda.anti_alias_activation_cuda",
sources=[
"indextts/BigVGAN/alias_free_activation/cuda/anti_alias_activation.cpp",
"indextts/BigVGAN/alias_free_activation/cuda/anti_alias_activation_cuda.cu",
],
include_dirs=["indextts/BigVGAN/alias_free_activation/cuda"],
extra_compile_args={
"cxx": ["-O3"],
"nvcc": [
"-O3",
"--use_fast_math",
"-U__CUDA_NO_HALF_OPERATORS__",
"-U__CUDA_NO_HALF_CONVERSIONS__",
"--expt-relaxed-constexpr",
"--expt-extended-lambda",
],
},
)
else:
print("CUDA_HOME is not set. Skipping anti_alias_activation CUDA extension.")
except ImportError:
print("PyTorch is not installed. Skipping torch extension.")
setup(
name="indextts",
version="0.1.4",
author="Index SpeechTeam",
author_email="xuanwu@bilibili.com",
long_description=open("README.md", encoding="utf8").read(),
long_description_content_type="text/markdown",
description="An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System",
url="https://github.com/index-tts/index-tts",
packages=find_packages(),
include_package_data=True,
install_requires=[
"torch>=2.1.2",
"torchaudio",
"transformers==4.36.2",
"accelerate",
"tokenizers==0.15.0",
"einops==0.8.1",
"matplotlib==3.8.2",
"omegaconf",
"sentencepiece",
"librosa",
"numpy",
"wetext" if platform.system() == "Darwin" else "WeTextProcessing",
],
extras_require={
"webui": ["gradio"],
},
ext_modules=[anti_alias_activation_cuda_ext] if anti_alias_activation_cuda_ext else [],
cmdclass={"build_ext": cpp_extension.BuildExtension} if anti_alias_activation_cuda_ext else {},
entry_points={
"console_scripts": [
"indextts = indextts.cli:main",
]
},
license="Apache-2.0",
python_requires=">=3.10",
classifiers=[
"Programming Language :: Python :: 3.10",
"Operating System :: OS Independent",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
],
)