Speak With the SAPI COM Voice in PowerShell

Use the legacy SpVoice COM object as a lightweight text-to-speech option.

WindowsaudiottspowershellLow risk
Run (New-Object -ComObject SAPI.SpVoice).Speak("your text") to speak.

01Command

Command
$ (New-Object -ComObject SAPI.SpVoice).Speak("Hello from PowerShell")

02What it does

SAPI's SpVoice COM object predates .NET and often works where System.Speech is unavailable. It accepts flags to read from a file or to wait asynchronously, and the installed voices are shared with the modern synthesizer.

03Risk

RiskLow risk
RequirementsWindows 10/11 with PowerShell 5.1 or PowerShell 7+
!Warning: COM automation depends on the SAPI runtime being present; on locked-down systems the object may not be creatable.

04Undo

✓No undo needed — this command does not change persistent state.

05Sources

  • SpVoice Object (SAPI 5.3)
    Microsoft Learn · vendor-doc · 2026-09-20
    Evidence: Documents the SpVoice COM object and its Speak method.

Last verified: 2026-09-20 · Category: Media

06Related solutions