import gradio as gr import requests import json import os # Replace with your actual Play.ht API key and User ID API_KEY = os.getenv('PLAY_API_KEY') USER_ID = os.getenv('PLAY_USER_ID') def text_to_speech(text): url = "https://api.play.ht/api/v2/tts/stream" # Customize the payload based on your Play.ht account setup payload = { "voice": "s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json", # Replace with your desired voice "output_format": "mp3", "content": text # Text to be converted to speech } headers = { "accept": "audio/mpeg", "content-type": "application/json", "Authorization": API_KEY, "X-User-ID": USER_ID } response = requests.post(url, json=payload, headers=headers) # Check if the response was successful if response.status_code == 200: # Save the audio content to a file audio_path = "output_audio.mp3" with open(audio_path, "wb") as audio_file: audio_file.write(response.content) return audio_path else: return f"Error: {response.status_code} - {response.text}" # Set up Gradio Interface iface = gr.Interface( fn=text_to_speech, inputs="text", outputs="audio", title="Play.ht Text-to-Speech", description="Convert text into speech using Play.ht's TTS streaming API." ) iface.launch(debug = True)