# Check if the System.Speech assembly is available try { Add-Type -AssemblyName System.Speech } catch { Write-Error "Windows Text-to-Speech (SAPI5) is not installed or not available. Please ensure you have Windows 10/11 with the latest updates." exit 1 } # Check for command-line arguments if (-not $args) { Write-Error "Error: No text provided. Usage: .\speak.ps1 'Your Text Here'" exit 1 } # Use first command-line argument as text to speak $text = $args[0] # Create SpeechSynthesizer $synth = New-Object System.Speech.Synthesis.SpeechSynthesizer try { #$synth.SelectVoice("Microsoft David Desktop") $synth.SelectVoice("Microsoft Hazel Desktop") #$synth.SelectVoice("Microsoft Zira Desktop") # Speak the text $synth.Speak($text) #Write-Host "Text spoken successfully." } catch { Write-Error "Error speaking text: $_" exit 1 }