chatbox / test_tts.py
anaspro
updatE
cd37326
raw
history blame
1.32 kB
#!/usr/bin/env python3
from gtts import gTTS
import io
import base64
import tempfile
def generate_speech(text: str, lang: str = 'ar') -> tuple[str, str]:
"""Generate speech from text using Google TTS and return audio file path and base64 data."""
try:
# Create TTS object
tts = gTTS(text=text, lang=lang, slow=False)
# Save to temporary file
temp_audio_file = tempfile.NamedTemporaryFile(delete=False, suffix='.mp3')
temp_audio_file.close()
tts.save(temp_audio_file.name)
# Also create base64 version for direct playback
audio_buffer = io.BytesIO()
tts.write_to_fp(audio_buffer)
audio_buffer.seek(0)
audio_base64 = base64.b64encode(audio_buffer.read()).decode('utf-8')
return temp_audio_file.name, f"data:audio/mp3;base64,{audio_base64}"
except Exception as e:
print(f"TTS Error: {e}")
return None, None
if __name__ == "__main__":
# Test the TTS function
text = "مرحبا، هذا اختبار للصوت"
file_path, audio_data = generate_speech(text)
if file_path and audio_data:
print(f"Audio file created: {file_path}")
print(f"Audio data length: {len(audio_data)}")
print("TTS test successful!")
else:
print("TTS test failed!")