podcaster / tts.py
marks
More cleaning functions
218c539
raw
history blame contribute delete
940 Bytes
import requests
from .text_processor import process_for_podcast
def text_to_speech(text, api_key):
# Use the enhanced text processor
cleaned_text = process_for_podcast(text)
url = "https://api.elevenlabs.io/v1/text-to-speech"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"text": cleaned_text, # Use cleaned text instead of original
"voice": "en_us_male", # Specify the desired voice
"output_format": "mp3" # Specify the desired output format
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
audio_content = response.content
with open("podcast_episode.mp3", "wb") as audio_file:
audio_file.write(audio_content)
return "podcast_episode.mp3"
else:
raise Exception(f"Error: {response.status_code}, {response.text}")