Spaces:
Running
on
T4
Running
on
T4
from elevenlabs.client import ElevenLabs | |
import gradio as gr | |
import os | |
from elevenlabs import play | |
client = ElevenLabs( | |
# api_key="YOUR_API_KEY", # Defaults to ELEVEN_API_KEY | |
) | |
female_voice = "nDJIICjR9zfJExIFeSCN" | |
male_voice = "1m3E2x7boso3AU9J3woJ" | |
def talk(): | |
# Define the dialogue text and assign different voices | |
dialogue = [ | |
{"text": "Hello! How are you today?", "voice": female_voice}, | |
{"text": "I'm doing well, thank you! How about you?", "voice": male_voice}, | |
{"text": "I'm great, thanks for asking!", "voice": female_voice}, | |
] | |
# Generate and play the dialogue | |
for line in dialogue: | |
audio = client.generate( | |
text=line["text"], | |
voice=line["voice"], | |
model="eleven_monolingual_v1", | |
) | |
# play(audio) | |
yield audio | |
def speak(): | |
clips = [b"".join(audio) for audio in talk()] | |
return b"".join(clips) | |
def get_interface(): | |
with gr.Blocks() as blocks: | |
gr.Audio(value=speak) | |
return blocks | |
if __name__ == '__main__': | |
demo = get_interface() | |
demo.launch() | |