moved tests to tests dir
This commit is contained in:
76
tests/test_voice.py
Normal file
76
tests/test_voice.py
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Quick test script for ElevenLabs voice announcements.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, '.')
|
||||
|
||||
try:
|
||||
from elevenlabs.client import ElevenLabs
|
||||
from elevenlabs import save
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
# Check API key
|
||||
api_key = os.getenv("ELEVENLABS_API_KEY")
|
||||
if not api_key:
|
||||
print("✗ ELEVENLABS_API_KEY not found in environment")
|
||||
print("Create a .env file with: ELEVENLABS_API_KEY=your_key_here")
|
||||
sys.exit(1)
|
||||
|
||||
# Initialize client with same settings as voice_service.py
|
||||
client = ElevenLabs(api_key=api_key)
|
||||
voice_id = "mbBupyLcEivjpxh8Brkf" # Rachel voice
|
||||
|
||||
# Test message
|
||||
test_message = "Lap 3. Strategy: Conservative One Stop. Brake bias forward for turn in. Current tire degradation suggests extended first stint."
|
||||
|
||||
print(f"Testing ElevenLabs voice announcement...")
|
||||
print(f"Voice ID: {voice_id} (Rachel)")
|
||||
print(f"Message: {test_message}")
|
||||
print("-" * 60)
|
||||
|
||||
# Synthesize
|
||||
audio = client.text_to_speech.convert(
|
||||
voice_id=voice_id,
|
||||
text=test_message,
|
||||
model_id="eleven_multilingual_v2",
|
||||
voice_settings={
|
||||
"stability": 0.4,
|
||||
"similarity_boost": 0.95,
|
||||
"style": 0.7,
|
||||
"use_speaker_boost": True
|
||||
}
|
||||
)
|
||||
|
||||
# Save audio
|
||||
output_dir = Path("data/audio")
|
||||
output_dir.mkdir(parents=True, exist_ok=True)
|
||||
output_path = output_dir / "test_voice.mp3"
|
||||
|
||||
save(audio, str(output_path))
|
||||
print(f"✓ Audio saved to: {output_path}")
|
||||
|
||||
# Play audio
|
||||
print("✓ Playing audio...")
|
||||
if sys.platform == "darwin": # macOS
|
||||
os.system(f"afplay {output_path}")
|
||||
elif sys.platform == "linux":
|
||||
os.system(f"mpg123 {output_path} || ffplay -nodisp -autoexit {output_path}")
|
||||
elif sys.platform == "win32":
|
||||
os.system(f"start {output_path}")
|
||||
|
||||
print("✓ Voice test completed successfully!")
|
||||
|
||||
except ImportError as e:
|
||||
print(f"✗ elevenlabs not available: {e}")
|
||||
print("Install with: pip install elevenlabs python-dotenv")
|
||||
except Exception as e:
|
||||
print(f"✗ Voice test failed: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
Reference in New Issue
Block a user