PowerShell/Scripts/speak-time.ps1
2021-01-09 16:40:46 +01:00

32 lines
866 B
PowerShell
Executable File

#!/snap/bin/powershell
<#
.SYNTAX ./speak-time.ps1
.DESCRIPTION speaks the current time by text-to-speech (TTS)
.LINK https://github.com/fleschutz/PowerShell
.NOTES Author: Markus Fleschutz / License: CC0
#>
function Speak([string]$Text) {
write-progress "$Text"
$Voice = new-object -ComObject SAPI.SPVoice
$Voices = $Voice.GetVoices()
foreach ($OtherVoice in $Voices) {
$Description = $OtherVoice.GetDescription()
if ($Description -like "*- English (United States)") {
$Voice.Voice = $OtherVoice
break
}
}
[void]$Voice.Speak($Text)
write-progress -complete "$Text"
}
try {
[system.threading.thread]::currentthread.currentculture=[system.globalization.cultureinfo]"en-US"
Speak("It's now $((Get-Date).ToShortTimeString())")
exit 0
} catch {
write-error "ERROR in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}