Untitled
unknown
python
a year ago
1.3 kB
7
Indexable
import pyttsx3
def text_to_speech(text, voice_index=0, rate=150, volume=1.0):
"""
Convert text to speech with customizable voice, rate, and volume.
:param text: The text to convert to speech
:param voice_index: Index of the voice to use (default 0)
:param rate: Speaking rate (default 150)
:param volume: Volume of the speech (0.0 to 1.0, default 1.0)
"""
engine = pyttsx3.init()
# Get available voices
voices = engine.getProperty('voices')
# Set the voice
if voice_index < len(voices):
engine.setProperty('voice', voices[voice_index].id)
else:
print(f"Voice index {voice_index} not available. Using default voice.")
# Set the rate
engine.setProperty('rate', rate)
# Set the volume
engine.setProperty('volume', volume)
# Say the text
engine.say(text)
engine.runAndWait()
# Example usage
text = "Hello, this is a test of the Text-to-Speech engine."
# List available voices
engine = pyttsx3.init()
voices = engine.getProperty('voices')
for i, voice in enumerate(voices):
print(f"Voice {i}: {voice.name}")
# Use the function
text_to_speech(text, voice_index=1, rate=150, volume=0.8)Editor is loading...
Leave a Comment