Code Monkey home page Code Monkey logo

xtts-rvc-ui's People

Contributors

vali-98 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

xtts-rvc-ui's Issues

Here is a modified app.py for additional temperature and repetition penaly sliders (attached)

Edit: Forked it here https://github.com/brentjohnston/XTTS-RVC-UI-ExtraOptions

Here is a modified app.py to which I added temperature and repetition penalty sliders from alltalk_tts. It makes a noticeable difference. I believe you want to stay in 0-1.5 range for temperature, and 0.8-2 range for rep penalty. It also only autoplays back the RVC output while typing, and updates the playback in realtime as you choose settings making it faster to find your most preferred settings.

You can also modify the model config.json and edit top_k and top_p settings for further tweaking. Here is what I am using:

"top_k": 70,
"top_p": 0.95,

Here is modified app.py:

import torch
from TTS.api import TTS
import gradio as gr
from rvc import Config, load_hubert, get_vc, rvc_infer
import gc, os, sys, argparse, requests
from pathlib import Path

parser = argparse.ArgumentParser(
    prog='XTTS-RVC-UI',
    description='Gradio UI for XTTSv2 and RVC'
)

parser.add_argument('-s', '--silent', action=argparse.BooleanOptionalAction, default=False)
args = parser.parse_args()

if args.silent:
    print('Enabling silent mode.')
    sys.stdout = open(os.devnull, 'w')

def download_models():
    rvc_files = ['hubert_base.pt', 'rmvpe.pt']

    for file in rvc_files:
        if not os.path.isfile(f'./models/{file}'):
            print(f'Downloading {file}')
            r = requests.get(f'https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/{file}')
            with open(f'./models/{file}', 'wb') as f:
                f.write(r.content)

    xtts_files = ['vocab.json', 'config.json', 'dvae.path', 'mel_stats.pth', 'model.pth']

    for file in xtts_files:
        if not os.path.isfile(f'./models/xtts/{file}'):
            print(f'Downloading {file}')
            r = requests.get(f'https://huggingface.co/coqui/XTTS-v2/resolve/v2.0.2/{file}')
            with open(f'./models/xtts/{file}', 'wb') as f:
                f.write(r.content)

[Path(_dir).mkdir(parents=True, exist_ok=True) for _dir in ['./models/xtts', './voices', './rvcs']]

download_models()

device = "cuda:0" if torch.cuda.is_available() else "cpu"
print("Device: " + device)

config = Config(device, device != 'cpu')
hubert_model = load_hubert(device, config.is_half, "./models/hubert_base.pt")
tts = TTS(model_path="./models/xtts", config_path='./models/xtts/config.json').to(device)
voices = []
rvcs = []
langs = ["en", "es", "fr", "de", "it", "pt", "pl", "tr", "ru", "nl", "cs", "ar", "zh-cn", "hu", "ko", "ja", "hi"]

def get_rvc_voices():
    global voices
    voices = os.listdir("./voices")
    global rvcs
    rvcs = list(filter(lambda x: x.endswith(".pth"), os.listdir("./rvcs")))
    return [rvcs, voices]

def runtts(rvc, voice, text, pitch_change, index_rate, temperature, repetition_penalty, language):
    try:
        if not text.strip():
            raise ValueError("Text input is required for synthesis.")
        
        # Ensure the TTS function uses the temperature and repetition penalty parameters
        audio = tts.tts_to_file(
            text=text,
            speaker_wav="./voices/" + voice,
            language=language,
            file_path="./output.wav",
            temperature=temperature,  # Add temperature here
            repetition_penalty=repetition_penalty  # Add repetition penalty here
        )
        
        voice_change(rvc, pitch_change, index_rate)
        return ["./output.wav", "./outputrvc.wav"]
    except Exception as e:
        print(f"Error in runtts: {e}")
        return [None, None]

def main():
    get_rvc_voices()
    print(rvcs)
    print(voices)
    interface = gr.Interface(
        fn=runtts,
        inputs=[
            gr.Dropdown(choices=rvcs, value=rvcs[0] if len(rvcs) > 0 else '', label='RVC model'),
            gr.Dropdown(choices=voices, value=voices[0] if len(voices) > 0 else '', label='Voice sample'),
            gr.Textbox(placeholder="Write here...", label='Text', elem_id="text_input"),
            gr.Slider(minimum=-12, maximum=12, value=0, step=1, label="Pitch"),
            gr.Slider(minimum=0, maximum=1, value=0.75, step=0.05, label="Index Rate"),
            gr.Slider(minimum=0.0, maximum=2.0, value=1.0, step=0.001, label="Temperature"),
            gr.Slider(minimum=0.0, maximum=2.0, value=1.0, step=0.001, label="Repetition Penalty"),
            gr.Dropdown(choices=langs, value=langs[0], label='Language')
        ],
        outputs=[
            gr.Audio(label="TTS result", type="filepath", interactive=False),
            gr.Audio(label="RVC result", type="filepath", interactive=False, autoplay=True)
        ],
        live=True,
        title="XTTS RVC UI",
        description="XTTS and RVC integration"
    )

    js_code = """
    <script>
    let timeout = null;
    const inputElem = document.querySelector("#text_input input");
    inputElem.addEventListener('input', function() {
        clearTimeout(timeout);
        timeout = setTimeout(() => {
            document.querySelector('button:contains("Submit")').click();
        }, 2000);
    });
    </script>
    """
    interface.launch(server_name="127.0.0.1", server_port=5000, quiet=True, share=False)

class RVC_Data:
    def __init__(self):
        self.current_model = {}
        self.cpt = {}
        self.version = {}
        self.net_g = {}
        self.tgt_sr = {}
        self.vc = {}

    def load_cpt(self, modelname, rvc_model_path):
        try:
            if self.current_model != modelname:
                print("Loading new model")
                del self.cpt, self.version, self.net_g, self.tgt_sr, self.vc
                self.cpt, self.version, self.net_g, self.tgt_sr, self.vc = get_vc(device, config.is_half, config, rvc_model_path)
                self.current_model = modelname
        except Exception as e:
            print(f"Error in load_cpt: {e}")
            input("Press Enter to continue...")

rvc_data = RVC_Data()

def voice_change(rvc, pitch_change, index_rate):
    try:
        modelname = os.path.splitext(rvc)[0]
        print("Using RVC model: " + modelname)
        rvc_model_path = "./rvcs/" + rvc
        rvc_index_path = "./rvcs/" + modelname + ".index" if os.path.isfile("./rvcs/" + modelname + ".index") and index_rate != 0 else ""

        if rvc_index_path != "":
            print("Index file found!")

        rvc_data.load_cpt(modelname, rvc_model_path)

        rvc_infer(
            index_path=rvc_index_path,
            index_rate=index_rate,
            input_path="./output.wav",
            output_path="./outputrvc.wav",
            pitch_change=pitch_change,
            f0_method="rmvpe",
            cpt=rvc_data.cpt,
            version=rvc_data.version,
            net_g=rvc_data.net_g,
            filter_radius=3,
            tgt_sr=rvc_data.tgt_sr,
            rms_mix_rate=0.25,
            protect=0,
            crepe_hop_length=0,
            vc=rvc_data.vc,
            hubert_model=hubert_model
        )
        gc.collect()
    except Exception as e:
        print(f"Error in voice_change: {e}")
        input("Press Enter to continue...")

if __name__ == "__main__":
    try:
        main()
    except Exception as e:
        print(f"An error occurred: {e}")
        input("Press Enter to exit...")

Commercial or no?

I understand that this repo has the MIT license. I just want to double check though, XTTS was licensed by coqui correct? So their non MIT license applies to the output from XTTS?

Cannot start UI

If I try to run it by clicking start.bat, the cmd window flashes and immediately exits. The same thing happens when I try to activate the venv by clicking activate.bat!

If I run python app.py from the cmd line, this happens:

D:\AI\XTTS-RVC-UI>python app.py
2024-01-01 12:45:17 | INFO | fairseq.tasks.text_to_speech | Please install tensorboardX: pip install tensorboardX
2024-01-01 12:45:17 | WARNING | xformers | WARNING[XFORMERS]: xFormers can't load C++/CUDA extensions. xFormers was built for:
    PyTorch 2.0.1+cu118 with CUDA 1108 (you have 2.1.0+cpu)
    Python  3.10.11 (you have 3.10.6)
  Please reinstall xformers (see https://github.com/facebookresearch/xformers#installing-xformers)
  Memory-efficient attention, SwiGLU, sparse and more won't be available.
  Set XFORMERS_MORE_DETAILS=1 for more details
2024-01-01 12:45:17 | WARNING | xformers | Triton is not available, some optimizations will not be enabled.
This is just a warning: No module named 'triton'
2024-01-01 12:45:17 | INFO | faiss.loader | Loading faiss with AVX2 support.
2024-01-01 12:45:17 | INFO | faiss.loader | Could not load library with AVX2 support due to:
ModuleNotFoundError("No module named 'faiss.swigfaiss_avx2'")
2024-01-01 12:45:17 | INFO | faiss.loader | Loading faiss.
2024-01-01 12:45:17 | INFO | faiss.loader | Successfully loaded faiss.
Device: cpu
No supported N-card found, use CPU for inference
2024-01-01 12:45:17 | INFO | fairseq.tasks.hubert_pretraining | current directory is D:\AI\XTTS-RVC-UI
2024-01-01 12:45:17 | INFO | fairseq.tasks.hubert_pretraining | HubertPretrainingTask Config {'_name': 'hubert_pretraining', 'data': 'metadata', 'fine_tuning': False, 'labels': ['km'], 'label_dir': 'label', 'label_rate': 50.0, 'sample_rate': 16000, 'normalize': False, 'enable_padding': False, 'max_keep_size': None, 'max_sample_size': 250000, 'min_sample_size': 32000, 'single_target': False, 'random_crop': True, 'pad_audio': False}
2024-01-01 12:45:17 | INFO | fairseq.models.hubert.hubert | HubertModel Config: {'_name': 'hubert', 'label_rate': 50.0, 'extractor_mode': default, 'encoder_layers': 12, 'encoder_embed_dim': 768, 'encoder_ffn_embed_dim': 3072, 'encoder_attention_heads': 12, 'activation_fn': gelu, 'layer_type': transformer, 'dropout': 0.1, 'attention_dropout': 0.1, 'activation_dropout': 0.0, 'encoder_layerdrop': 0.05, 'dropout_input': 0.1, 'dropout_features': 0.1, 'final_dim': 256, 'untie_final_proj': True, 'layer_norm_first': False, 'conv_feature_layers': '[(512,10,5)] + [(512,3,2)] * 4 + [(512,2,2)] * 2', 'conv_bias': False, 'logit_temp': 0.1, 'target_glu': False, 'feature_grad_mult': 0.1, 'mask_length': 10, 'mask_prob': 0.8, 'mask_selection': static, 'mask_other': 0.0, 'no_mask_overlap': False, 'mask_min_space': 1, 'mask_channel_length': 10, 'mask_channel_prob': 0.0, 'mask_channel_selection': static, 'mask_channel_other': 0.0, 'no_mask_channel_overlap': False, 'mask_channel_min_space': 1, 'conv_pos': 128, 'conv_pos_groups': 16, 'latent_temp': [2.0, 0.5, 0.999995], 'skip_masked': False, 'skip_nomask': False, 'checkpoint_activations': False, 'required_seq_len_multiple': 2, 'depthwise_conv_kernel_size': 31, 'attn_type': '', 'pos_enc_type': 'abs', 'fp16': False}
C:\Users\mattb\AppData\Local\Programs\Python\Python310\lib\site-packages\torch\nn\utils\weight_norm.py:30: UserWarning: torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.
  warnings.warn("torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.")
 > Using model: xtts
[]
[]
C:\Users\mattb\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\components\dropdown.py:163: UserWarning: The value passed into gr.Dropdown() is not in the list of choices. Please update the list of choices to include:  or set allow_custom_value=True.
  warnings.warn(
Running on local URL:  http://0.0.0.0:5000

If I go to that URL, nothing comes up.

Noob question - which voice sample to use?

Hi, I found RVC models on voice-models.com, e.g.Trump, Obama etc I mean you name it, many RVC models of many influencers and famous people can be found online.

I downloaded the file, renamed the index to match the model. Tried to use it. Got an error which didn't help much but somehow I guessed I had to provide also a voice sample...

Why a voice sample is needed? I spent a bunch of time to find some trump voice sample and I'm not even sure if this helps to use the Trump RVC model...

What kind of a voice model should I use? I guess it depends on the RVC model, right? So I don't really need a sample of trump voice to use the trump RVC model, or if I find it, it actually helps?

For best results, how long should the voice sample be, how many words? Quality?

This is worth to add in the readme (that a voice sample is mandatory) maybe provide one already, so people can start using this repo immediately?

Also, what is the index rate for? By default it's 0.75, what is it supposed to do if we use a higher or lower value?

Thanks for anyone who can clarify these things. So far this repo looks very promising, thanks for creating it.

Say what's the deal? These packages are conflicting

Removed the specific versionings, and still managed to get this error:

  cl : Command line warning D9002 : ignoring unknown option '-std=c++11'
  cl : Command line warning D9002 : ignoring unknown option '-O3'
  libbleu.cpp
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include\yvals.h(20): fatal error C1083: Cannot open include file: 'crtdbg.h': No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.38.33130\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for fairseq
Failed to build fairseq
ERROR: Could not build wheels for fairseq, which is required to install pyproject.toml-based projects

Can you explain why the numpy requirements are conflicting?
And why this won't work out of the gate?
What have you tested it on?
Do you have a YouTube video of your install methodology?
Thanks a million! <3

Incomplet WebUI

Description:

I encountered an error while installing the packages from requirements.txt. The installation process fails specifically when trying to install the jamo package.

Steps to Reproduce:

Clone the XTTS-RVC-UI repository.
Create a new virtual environment.
Activate the virtual environment.
Run pip install -r requirements.txt.

Expected Behavior:

All packages listed in requirements.txt, including jamo, should be installed successfully without any errors.
Actual Behavior:
The installation process fails with an error when trying to install the jamo package. The error message indicates a UnicodeDecodeError while decoding the long_description in the setup.py file of the jamo package.

Error Message:

Copy code  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\Erater\AppData\Local\Temp\pip-install-ar579h5m\jamo_e0714986d64243ed8ddb467868cc1551\setup.py", line 11, in <module>
          long_description = f.read()
        File "C:\Users\Erater\AppData\Local\Programs\Python\Python310\lib\encodings\cp1252.py", line 23, in decode
          return codecs.charmap_decode(input,self.errors,decoding_table)[0]
      UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 707: character maps to <undefined>
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Environment:

Operating System: Windows
Python Version: 3.10.14
pip Version: 24.0

Additional Context:

I have created a new virtual environment and activated it before running the pip install -r requirements.txt command. The error occurs specifically with the jamo package, while other packages seem to install without issues.
Please advise on how to resolve this installation error with the jamo package. Let me know if you need any further information or details.

Requirements conflict

Having trouble getting the TTS RVC WebUI installed getting this error:

ERROR: Cannot install -r requirements.txt (line 1), -r requirements.txt (line 12), -r requirements.txt (line 3), -r requirements.txt (line 4), -r requirements.txt (line 7), -r requirements.txt (line 9) and numpy==1.22.0 because these package versions have conflicting dependencies.

The conflict is caused by:
The user requested numpy==1.22.0
fairseq 0.12.2 depends on numpy; python_version >= "3.7"
gradio 4.7.1 depends on numpy~=1.0
librosa 0.10.0 depends on numpy>=1.20.3
pyworld 0.3.4 depends on numpy
scipy 1.11.4 depends on numpy=1.21.6
tts 0.21.1 depends on numpy>=1.24.3; python_version > "3.10"

To fix this you could try to:

  1. loosen the range of package versions you've specified
  2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Made into an extension

I have forked this repository to make it into an extension.
https://github.com/rsxdalv/extension_xtts_rvc_ui

As an extension, this UI does not need to focus on installation issues, but instead can focus on the UI itself. Additionally, the repository can be installed as a package:

pip install git+https://github.com/rsxdalv/extension_xtts_rvc_ui

Let me know if there are any suggestions, or questions about it.

ModuleNotFoundError: No module named 'distutils'/ Getting requirements to build wheel did not run successfully.

I have a few issues, this is shared across XTTS and other TTS iv'e ran on cmd for requirements. I havn't cracked at it for a long time yet but i'd much appreciate help and or guidance my knowledge of this stuff isn't great. I'd try no virtual environment and virtual just in case. I tried following the instructions very closely but i feel like i'm missing something.

C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI>pip install -r requirements.txt
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting fairseq==0.12.2 (from -r requirements.txt (line 1))
Downloading fairseq-0.12.2.tar.gz (9.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 16.6 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Collecting faiss_cpu==1.7.4 (from -r requirements.txt (line 2))
Downloading faiss-cpu-1.7.4.tar.gz (57 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.4/57.4 kB ? eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting gradio==4.7.1 (from -r requirements.txt (line 3))
Downloading gradio-4.7.1-py3-none-any.whl.metadata (17 kB)
Collecting librosa==0.10.0 (from -r requirements.txt (line 4))
Downloading librosa-0.10.0-py3-none-any.whl.metadata (8.3 kB)
Collecting numpy==1.22.0 (from -r requirements.txt (line 5))
Downloading numpy-1.22.0.zip (11.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 15.2 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\cli\base_command.py", line 179, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\cli\req_command.py", line 67, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\commands\install.py", line 377, in run
requirement_set = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\resolver.py", line 95, in resolve
result = self._result = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_vendor\resolvelib\resolvers.py", line 546, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_vendor\resolvelib\resolvers.py", line 397, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_vendor\resolvelib\resolvers.py", line 173, in _add_to_criteria
if not criterion.candidates:
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_vendor\resolvelib\structs.py", line 156, in bool
return bool(self._sequence)
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 174, in bool
return any(self)
^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 162, in
return (c for c in iterator if id(c) not in self._incompatible_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 53, in _iter_built
candidate = func()
^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\factory.py", line 185, in _make_candidate_from_link
base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\factory.py", line 231, in _make_base_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 303, in init
super().init(
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 158, in init
self.dist = self._prepare()
^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 235, in _prepare
dist = self._prepare_distribution()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 314, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\operations\prepare.py", line 527, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\operations\prepare.py", line 642, in _prepare_linked_requirement
dist = _get_prepared_distribution(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\operations\prepare.py", line 72, in _get_prepared_distribution
abstract_dist.prepare_distribution_metadata(
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\distributions\sdist.py", line 56, in prepare_distribution_metadata
self._install_build_reqs(finder)
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\distributions\sdist.py", line 126, in _install_build_reqs
build_reqs = self._get_build_requires_wheel()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\distributions\sdist.py", line 103, in _get_build_requires_wheel
return backend.get_requires_for_build_wheel()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_internal\utils\misc.py", line 709, in get_requires_for_build_wheel
return super().get_requires_for_build_wheel(config_settings=cs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_vendor\pyproject_hooks_impl.py", line 166, in get_requires_for_build_wheel
return self._call_hook('get_requires_for_build_wheel', {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_vendor\pyproject_hooks_impl.py", line 321, in _call_hook
raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):
File "C:\Users\Bradley\AppData\Roaming\Python\Python312\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 77, in build_backend
obj = import_module(mod_path)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Lib\importlib_init
.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1310, in _find_and_load_unlocked
File "", line 488, in _call_with_frames_removed
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in call_with_frames_removed
File "C:\Users\Bradley\AppData\Local\Temp\pip-build-env-ocr45sok\overlay\Lib\site-packages\setuptools_init
.py", line 10, in
import distutils.core
ModuleNotFoundError: No module named 'distutils'

C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI>python -m venv myenv //here i now test with virtual environment

C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI>myenv\Scripts\activate

(myenv) C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI>pip install -r requirements.txt //now tried running reqs in virtual env
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting fairseq==0.12.2 (from -r requirements.txt (line 1))
Downloading fairseq-0.12.2.tar.gz (9.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 14.3 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Collecting faiss_cpu==1.7.4 (from -r requirements.txt (line 2))
Downloading faiss-cpu-1.7.4.tar.gz (57 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.4/57.4 kB ? eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting gradio==4.7.1 (from -r requirements.txt (line 3))
Downloading gradio-4.7.1-py3-none-any.whl.metadata (17 kB)
Collecting librosa==0.10.0 (from -r requirements.txt (line 4))
Downloading librosa-0.10.0-py3-none-any.whl.metadata (8.3 kB)
Collecting numpy==1.22.0 (from -r requirements.txt (line 5))
Downloading numpy-1.22.0.zip (11.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 16.0 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\cli\base_command.py", line 180, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\cli\req_command.py", line 245, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\commands\install.py", line 377, in run
requirement_set = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\resolver.py", line 95, in resolve
result = self._result = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 546, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 397, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 173, in _add_to_criteria
if not criterion.candidates:
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\resolvelib\structs.py", line 156, in bool
return bool(self._sequence)
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 155, in bool
return any(self)
^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 143, in
return (c for c in iterator if id(c) not in self._incompatible_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 47, in _iter_built
candidate = func()
^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\factory.py", line 182, in _make_candidate_from_link
base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\factory.py", line 228, in _make_base_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 290, in init
super().init(
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 156, in init
self.dist = self._prepare()
^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 222, in _prepare
dist = self._prepare_distribution()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 301, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\operations\prepare.py", line 525, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\operations\prepare.py", line 640, in _prepare_linked_requirement
dist = _get_prepared_distribution(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\operations\prepare.py", line 71, in _get_prepared_distribution
abstract_dist.prepare_distribution_metadata(
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\distributions\sdist.py", line 54, in prepare_distribution_metadata
self._install_build_reqs(finder)
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\distributions\sdist.py", line 124, in _install_build_reqs
build_reqs = self._get_build_requires_wheel()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\distributions\sdist.py", line 101, in _get_build_requires_wheel
return backend.get_requires_for_build_wheel()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_internal\utils\misc.py", line 745, in get_requires_for_build_wheel
return super().get_requires_for_build_wheel(config_settings=cs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\pyproject_hooks_impl.py", line 166, in get_requires_for_build_wheel
return self._call_hook('get_requires_for_build_wheel', {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\pyproject_hooks_impl.py", line 321, in _call_hook
raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 77, in build_backend
obj = import_module(mod_path)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Lib\importlib_init
.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1310, in _find_and_load_unlocked
File "", line 488, in _call_with_frames_removed
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in call_with_frames_removed
File "C:\Users\Bradley\AppData\Local\Temp\pip-build-env-2uu2ojo1\overlay\Lib\site-packages\setuptools_init
.py", line 10, in
import distutils.core
ModuleNotFoundError: No module named 'distutils'

[notice] A new release of pip is available: 24.0 -> 24.1.2
[notice] To update, run: python.exe -m pip install --upgrade pip

(myenv) C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI>pip install setuptools //gave up and installed setup tools dependency since distutlis is apparently not in newer python? (i didnt know this)
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting setuptools
Downloading setuptools-71.0.4-py3-none-any.whl.metadata (6.5 kB)
Downloading setuptools-71.0.4-py3-none-any.whl (2.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 10.0 MB/s eta 0:00:00
Installing collected packages: setuptools
Successfully installed setuptools-71.0.4

[notice] A new release of pip is available: 24.0 -> 24.1.2
[notice] To update, run: python.exe -m pip install --upgrade pip

(myenv) C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI>pip install -r requirements.txt
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting fairseq==0.12.2 (from -r requirements.txt (line 1))
Downloading fairseq-0.12.2.tar.gz (9.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 14.3 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Collecting faiss_cpu==1.7.4 (from -r requirements.txt (line 2))
Downloading faiss-cpu-1.7.4.tar.gz (57 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.4/57.4 kB ? eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting gradio==4.7.1 (from -r requirements.txt (line 3))
Downloading gradio-4.7.1-py3-none-any.whl.metadata (17 kB)
Collecting librosa==0.10.0 (from -r requirements.txt (line 4))
Downloading librosa-0.10.0-py3-none-any.whl.metadata (8.3 kB)
Collecting numpy==1.22.0 (from -r requirements.txt (line 5))
Downloading numpy-1.22.0.zip (11.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 16.8 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [33 lines of output]
Traceback (most recent call last):
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 353, in
main()
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 112, in get_requires_for_build_wheel
backend = _build_backend()
^^^^^^^^^^^^^^^^
File "C:\Users\Bradley\Desktop\retry\XTTS-RVC-UI\myenv\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 77, in build_backend
obj = import_module(mod_path)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Lib\importlib_init
.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1310, in _find_and_load_unlocked
File "", line 488, in _call_with_frames_removed
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in load_unlocked
File "", line 995, in exec_module
File "", line 488, in call_with_frames_removed
File "C:\Users\Bradley\AppData\Local\Temp\pip-build-env-6qb0lzw4\overlay\Lib\site-packages\setuptools_init
.py", line 16, in
import setuptools.version
File "C:\Users\Bradley\AppData\Local\Temp\pip-build-env-6qb0lzw4\overlay\Lib\site-packages\setuptools\version.py", line 1, in
import pkg_resources
File "C:\Users\Bradley\AppData\Local\Temp\pip-build-env-6qb0lzw4\overlay\Lib\site-packages\pkg_resources_init
.py", line 2172, in
register_finder(pkgutil.ImpImporter, find_on_path)
^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Add support hindi

Hey please will you add support of Hindi language as xtts officially support it also there is a option to choose HI in language section but its giving error

adding new language

can i add another language like Bahasa Indonesia? if yes, how can i do it?

Feature request: add play button for voice samples

See:

image

I've downloaded a bunch of voices from elevenlabs, to be used as voice samples. Would be cool to have a play button so after selecting a voice sample from the dropdown it would be possible to listen to it.

This is useful, as some RVC models need a certain voice sample for better results.

Found a typo that causes index files to never load.

Hello! Thank you for making this awesome little app, it's very useful!

I noticed that some of my RVC files that worked on other programs, were not producing the expected results on your client. I tracked the issue down to a typo in this line:

rvc_index_path = "./rvcs/" + modelname + ".index" if os.path.isfile("./rvc/" + modelname + ".index") and index_rate != 0 else ""

It should be rvcs, not rvc. Now .index files are loading just fine, and voices sound more accurate.

I don't know how to submit a pull request but I thought this was probably just as good. Thanks again!

Issue running on RPI, fairseq

I am getting this error:

python app.py Traceback (most recent call last): File "/home/pi4/social/XTTS-RVC-UI/app.py", line 4, in <module> from rvc import Config, load_hubert, get_vc, rvc_infer File "/home/pi4/social/XTTS-RVC-UI/rvc.py", line 6, in <module> from fairseq import checkpoint_utils File "/home/pi4/social/.vsocial/lib/python3.11/site-packages/fairseq/__init__.py", line 20, in <module> from fairseq.distributed import utils as distributed_utils File "/home/pi4/social/.vsocial/lib/python3.11/site-packages/fairseq/distributed/__init__.py", line 7, in <module> from .fully_sharded_data_parallel import ( File "/home/pi4/social/.vsocial/lib/python3.11/site-packages/fairseq/distributed/fully_sharded_data_parallel.py", line 10, in <module> from fairseq.dataclass.configs import DistributedTrainingConfig File "/home/pi4/social/.vsocial/lib/python3.11/site-packages/fairseq/dataclass/__init__.py", line 6, in <module> from .configs import FairseqDataclass File "/home/pi4/social/.vsocial/lib/python3.11/site-packages/fairseq/dataclass/configs.py", line 1104, in <module> @dataclass ^^^^^^^^^ File "/usr/lib/python3.11/dataclasses.py", line 1220, in dataclass return wrap(cls) ^^^^^^^^^ File "/usr/lib/python3.11/dataclasses.py", line 1210, in wrap return _process_class(cls, init, repr, eq, order, unsafe_hash, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/dataclasses.py", line 958, in _process_class cls_fields.append(_get_field(cls, name, type, kw_only)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/dataclasses.py", line 815, in _get_field raise ValueError(f'mutable default {type(f.default)} for field ' ValueError: mutable default <class 'fairseq.dataclass.configs.CommonConfig'> for field common is not allowed: use default_factory

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.