-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExampleTTS.py
More file actions
53 lines (40 loc) · 1.27 KB
/
Copy pathExampleTTS.py
File metadata and controls
53 lines (40 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
import os
import io
import pygame
load_dotenv()
# Debug: Check if API key is loaded
api_key = os.getenv("ELEVENLABS_API_KEY")
if api_key:
print(f"API Key loaded: {api_key[:10]}...")
else:
print("ERROR: ELEVENLABS_API_KEY not found in environment variables")
exit(1)
elevenlabs = ElevenLabs(
api_key=api_key,
)
audio = elevenlabs.text_to_speech.convert(
text="The first move is what sets everything in motion.",
voice_id="JBFqnCBsd6RMkjVDRZzb",
model_id="eleven_multilingual_v2",
output_format="mp3_44100_128",
)
# Play audio directly from memory using pygame
try:
pygame.mixer.init()
# Convert audio chunks to bytes
audio_data = b"".join(audio)
# Create a BytesIO object to simulate a file
audio_buffer = io.BytesIO(audio_data)
# Load and play the audio
pygame.mixer.music.load(audio_buffer)
pygame.mixer.music.play()
print("Audio playing...")
# Wait for playback to complete
while pygame.mixer.music.get_busy():
pygame.time.wait(100)
print("Audio playback completed")
except Exception as e:
print(f"Direct audio playback failed: {e}")
print("You may need to install pygame: pip install pygame")