Text-to-Speech / app.py
lmxue's picture
Update app.py
8f90878
# Copyright (c) 2023 Amphion.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree
import subprocess
command_to_run = "cd ./modules/monotonic_align;mkdir -p monotonic_align;python setup.py build_ext --inplace;cd /home/user/app"
try:
result = subprocess.check_output(command_to_run, shell=True, text=True)
print("Command output:")
print(result)
except subprocess.CalledProcessError as e:
print(f"Command failed with return code {e.returncode}")
import gradio as gr
import os
import inference
SUPPORTED_SPEAKERS = {
"Cori Samuel":"hifitts_92",
"Phil Benson":"hifitts_6097",
"Mike Pelton":"hifitts_6670",
"Tony Oliva":"hifitts_6671",
"Maria Kasper":"hifitts_8051",
"John Van Stan":"hifitts_9017",
"Helen Taylor":"hifitts_9136",
"Sylviamb":"hifitts_11614",
"Celine Major":"hifitts_11697",
"LikeManyWaters":"hifitts_12787"
}
def tts_inference(
input_text,
target_speaker
):
### Target Speaker ###
target_speaker = SUPPORTED_SPEAKERS[target_speaker]
args_list = ["--config", "./egs/tts/vits_hifitts/exp_config.json"]
args_list += ["--checkpoint_path", "./expdir/checkpoint/latest-checkpoint"]
args_list += ["--speaker_name", target_speaker]
args_list += ["--text", input_text]
args_list += ["--mode","single"]
args_list += ["--output_dir", "result"]
args_list += ["--log_level", "debug"]
os.environ["WORK_DIR"] = "./"
inference.main(args_list)
### Display ###
result_file = os.path.join(
"result/single/test_pred.wav"
)
return result_file
gr.Markdown(
"""
# Amphion Text to Speech (TTS)
[![Open in OpenXLab](https://cdn-static.openxlab.org.cn/app-center/openxlab_app.svg)](https://openxlab.org.cn/usercenter/Amphion)
This demo provides an Amphion TTS pretrained model (VITS) for you to play.
"""
)
demo_inputs = [
gr.Textbox(
label="Input text",
type="text",
placeholder="Type something here.."
),
gr.Radio(
choices=list(SUPPORTED_SPEAKERS.keys()),
label="Target Speaker",
value="Cori Samuel"
)
]
demo_output = gr.Audio(label="")
demo = gr.Interface(
fn=tts_inference,
inputs=demo_inputs,
outputs=demo_output,
title="Amphion Text-to-Speech",
)
if __name__ == "__main__":
demo.launch(share=True)