Chatterbox-VC / app.py
Richharvey1978's picture
Update app.py
03c6a81 verified
Raw
History Blame Contribute Delete
1.23 kB
import spaces
import torch
import gradio as gr
from chatterbox_vc import VoiceConverter
vc = None
def get_converter():
global vc
if vc is None:
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Loading ChatterboxVC on {device}...")
vc = VoiceConverter(device=device)
return vc
@spaces.GPU
def convert(source_audio, target_audio):
if source_audio is None:
raise gr.Error("Please upload a source audio file.")
if target_audio is None:
raise gr.Error("Please upload a reference voice.")
output = "output.wav"
converter = get_converter()
converter.convert(
source_audio,
target_audio,
output,
)
return output
with gr.Blocks() as demo:
gr.Markdown("# Chatterbox Voice Conversion")
source = gr.Audio(
type="filepath",
label="Source Speech",
)
target = gr.Audio(
type="filepath",
label="Reference Voice",
)
button = gr.Button("Convert")
output = gr.Audio(
type="filepath",
label="Converted Speech",
)
button.click(
convert,
inputs=[source, target],
outputs=output,
)
demo.launch()