Functions/GenXdev.Console/Stop-TextToSpeech.ps1
|
############################################################################### <# .SYNOPSIS Immediately stops any ongoing text-to-speech output. .DESCRIPTION Halts all active and queued speech synthesis by canceling both standard and customized speech operations. This provides an immediate silence for any ongoing text-to-speech activities. .LICENSE Copyright (C) 2026 René Vaessen / GenXdev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. .EXAMPLE PS C:\> Stop-TextToSpeech Immediately stops any ongoing speech .EXAMPLE PS C:\> say "Hello world"; sst Starts speaking but gets interrupted immediately .NOTES This cmdlet is commonly used in conjunction with Start-TextToSpeech (alias: say) and Skip-TextToSpeech (alias: sstSkip) for speech control. #> function Stop-TextToSpeech { [CmdletBinding(SupportsShouldProcess = $true)] [Alias('sst')] param() begin { Microsoft.PowerShell.Utility\Write-Verbose 'Initiating speech cancellation request' } process { try { if ($PSCmdlet.ShouldProcess('Text-to-speech output', 'Stop')) { # cancel all pending standard speech operations $null = [GenXdev.Helpers.Misc]::Speech.SpeakAsyncCancelAll() # cancel all pending customized speech operations $null = [GenXdev.Helpers.Misc]::SpeechCustomized.SpeakAsyncCancelAll() Microsoft.PowerShell.Utility\Write-Verbose 'Successfully cancelled all speech operations' } } catch { # silently handle any speech cancellation errors Microsoft.PowerShell.Utility\Write-Verbose 'Error occurred while attempting to cancel speech' } } end { } } |