eaysu
voice preset menu changed
d4af80c
raw
history blame
2.11 kB
import gradio as gr
from transformers import AutoProcessor, BarkModel
import torch
import numpy as np
torch.set_num_threads(1)
# Load models
models = {
"suno/bark": BarkModel.from_pretrained("suno/bark"),
"suno/bark-small": BarkModel.from_pretrained("suno/bark-small")
}
# Combined voice presets
all_voice_presets = [
"v2/en_speaker_0", "v2/en_speaker_1", "v2/en_speaker_2", "v2/en_speaker_3",
"v2/en_speaker_4", "v2/en_speaker_5", "v2/en_speaker_6",
"v2/en_speaker_7", "v2/en_speaker_8", "v2/en_speaker_9",
"v2/fr_speaker_0", "v2/fr_speaker_1", "v2/fr_speaker_2", "v2/fr_speaker_3",
"v2/fr_speaker_4", "v2/fr_speaker_5", "v2/fr_speaker_6",
"v2/fr_speaker_7", "v2/fr_speaker_8", "v2/fr_speaker_9",
"v2/de_speaker_0", "v2/de_speaker_1", "v2/de_speaker_2", "v2/de_speaker_3",
"v2/de_speaker_4", "v2/de_speaker_5", "v2/de_speaker_6",
"v2/de_speaker_7", "v2/de_speaker_8", "v2/de_speaker_9",
"v2/tr_speaker_0", "v2/tr_speaker_1", "v2/tr_speaker_2", "v2/tr_speaker_3",
"v2/tr_speaker_4", "v2/tr_speaker_5", "v2/tr_speaker_6",
"v2/tr_speaker_7", "v2/tr_speaker_8", "v2/tr_speaker_9"
]
# Function to generate speech
def generate_speech(text, model_name, voice_preset):
model = models[model_name]
processor = AutoProcessor.from_pretrained(model_name) # Load processor for the selected model
inputs = processor(text, voice_preset=voice_preset, return_tensors="pt")
inputs['attention_mask'] = torch.ones_like(inputs['input_ids'])
with torch.no_grad():
audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().astype('float32').squeeze()
return (model.generation_config.sample_rate, audio_array)
# Gradio app setup
with gr.Blocks() as app:
gr.Markdown("# Multilingual Text-to-Speech with Bark")
# Textbox for user input
text_input = gr.Textbox(label="Enter Text", placeholder="Type something to synthesize...")
# Model selection
model_preset_input = gr.Dropdown(["suno/bark", "suno/bark-small"], label="Select Model", value="suno/bark-small")
# Combined voice pr