Skip to content

engine.say() followed by consecutive calls fails to speak queued text. #419

@Vikrambgs

Description

@Vikrambgs

When using pyttsx3 with the 'sapi5' engine on Windows, calling engine.say() multiple times in a row — followed by engine.runAndWait() after each — sometimes causes the second or later speech to be silently skipped or not spoken at all. This happens even though no error is thrown and the function completes.

To Reproduce

import pyttsx3

engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id) 

def speak(text):
    engine.say(text)
    engine.runAndWait()

speak("Whats up buddy?")                       # ✅ This line works fine
speak("Now I am going to speak last line.")    # ❌ This line fails to speak
print("I will run without any error")          # ✅ This line works fine

System Information:

OS: Windows 10
Python Version: 3.13.3
pyttsx3 Version: 2.99

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions