CosyVoice-300M / css /advanced.py
wenmeng.zwm
fix key error
251bc7a
raw
history blame contribute delete
No virus
3.31 kB
import spaces
import random
import gradio as gr
from css.utils import *
# 高级语音生成
def advanced():
sound_choices_values = ['中文女', '中文男', '英文女', '英文男', '日语男', '粤语女', '韩语女']
sound_choices = ['Chinese Female', 'Chinese Male', 'Japanese Male', 'English Female', 'English Male', 'Cantonese Female', 'Korean Female']
sound_choices_dict = {k:v for k, v in zip(sound_choices, sound_choices_values)}
def random_seed():
return random.randint(1, 100000000)
@spaces.GPU
def generate_audio(_sound_radio, _speech_status_textbox,
_synthetic_input_textbox, _seed):
_sound_radio = sound_choices_dict[_sound_radio]
print(_sound_radio, _speech_status_textbox, _synthetic_input_textbox, _seed)
if _synthetic_input_textbox == '':
#gr.Warning('合成文本为空,您是否忘记输入合成文本?')
gr.Warning('The synthesis text is empty, did you forget to input the synthesis text?')
return (target_sr, default_data)
set_all_random_seed(_seed)
model = cosyvoice_instruct
output = model.inference_instruct(_synthetic_input_textbox, _sound_radio, _speech_status_textbox)
audio_data = postprocess(output['tts_speech']).numpy().flatten()
return (target_sr, audio_data)
with gr.Column():
sound_radio = gr.Radio(choices=sound_choices,
value=sound_choices[0],
label="Select Preset Voice")
with gr.Column():
speech_status_textbox = gr.Textbox(label="Describe Voice Status")
gr.Examples(
label="Example of control text",
examples=[
["Selene 'Moonshade', is a mysterious, elegant dancer with a connection to the night. Her movements are both mesmerizing and deadly. "],
["A female speaker with normal pitch, slow speaking rate, and sad emotion."],
],
inputs=[speech_status_textbox])
with gr.Column():
synthetic_input_textbox = gr.Textbox(label="Input Synthesis Text")
gr.Examples(
label="example",
examples=example_tts_text,
inputs=[synthetic_input_textbox])
with gr.Accordion(label="Random Seed"):
with gr.Row():
with gr.Column(scale=1, min_width=180):
seed_button = gr.Button(value="\U0001F3B2 Shuffle Randomly",
elem_classes="full-height")
with gr.Column(scale=10):
seed = gr.Number(show_label=False,
value=0,
container=False,
elem_classes="full-height")
with gr.Column():
generate_button = gr.Button("Generate Audio", variant="primary", size="lg")
with gr.Column():
output_audio = gr.Audio(label="Synthesize Audio")
seed_button.click(fn=random_seed, outputs=[seed])
generate_button.click(fn=generate_audio,
inputs=[
sound_radio, speech_status_textbox,
synthetic_input_textbox, seed
],
outputs=[output_audio])