# Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser param( [Parameter(Mandatory=$true)][int]$voicenum, [Parameter(Mandatory=$true)][string]$textfile ) Add-Type -AssemblyName System.Speech; $speak = New-Object System.Speech.Synthesis.SpeechSynthesizer; $voiceoptions = $speak.GetInstalledVoices("en-US"); $voice = $voiceoptions[$voicenum % $voiceoptions.count]; $speak.SelectVoice($voice.VoiceInfo.Name); $speak.Rate="0"; $text = Get-Content -Path $textfile; $speak.Speak($text);