function Get-SwansonQuote { param( [int]$Level = 1 ) for($i = 0; $i -lt $level; $i++) { try { Write-Output (Invoke-RestMethod 'http://ron-swanson-quotes.herokuapp.com/v2/quotes' -Method Get).Trim() } catch { Write-Warning "Failed attempt $i : $_" } } } function Talk-Back { [CmdletBinding()] param( [Parameter(ValueFromPipeline)] [string]$Quote ) Begin { Write-Verbose "Begin!" $voice = New-Object -ComObject "SAPI.SPvoice" } Process { Write-Verbose $quote $voice.speak($Quote) | Out-Null } End { Write-Verbose "End!" Remove-Variable Voice } } function Get-Inspiration { param( [int]$Count ) Get-SwansonQuote -Level $Count | Talk-Back -Verbose } Get-Inspiration -Count 3