File size: 1,471 Bytes
a5c86e8
 
1d2e2ec
 
5457abc
1d2e2ec
 
 
a5c86e8
9b2107c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f5f4420
 
 
9b2107c
0c511b7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import subprocess

# Run the setup.py install command
try:
    subprocess.run(['python', 'setup.py', 'install', '--user'], check=True)
    print("Installation successful.")
except subprocess.CalledProcessError as e:
    print(f"Installation failed with error: {e}")

import gradio as gr
import torch
from TTS.api import TTS

# Get device
device = "cuda" if torch.cuda.is_available() else "cpu"

# Init TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)

def voice_clone(text: str, speaker_wav: str, language: str):
    # Run TTS
    print("Speaker wav:", speaker_wav)
    tts.tts_to_file(text=text, speaker_wav=speaker_wav, language=language, file_path="output.wav")
    return "output.wav"

iface = gr.Interface(fn=voice_clone, 
                     inputs=[gr.Textbox(label="Текст", info="Достаточно одного-двух предложений за конвертацию", max_lines=3), gr.Audio(type="filepath", label="Звуковая спектрограмма"), gr.Radio(label="Язык речи", info="Выберите язык вывода для синтезированной речи", choices=["ru", "en", "zh-cn", "ja", "de", "fr", "it", "pt", "pl", "tr", "ko", "nl", "cs", "ar", "es", "hu"], value="ru")], 
                     outputs=gr.Audio(type="filepath", label="Синтезированная спектрограмма"), 
                     title="Клонирование голоса")

iface.launch ()