diff --git a/Scripts/speak-date.ps1 b/Scripts/speak-date.ps1 index 8f70617c..169d15d7 100644 --- a/Scripts/speak-date.ps1 +++ b/Scripts/speak-date.ps1 @@ -9,11 +9,20 @@ 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("Today is $((Get-Date).ToShortDateString())") exit 0 } catch { diff --git a/Scripts/speak-test.ps1 b/Scripts/speak-test.ps1 index 9a886edf..971d7bad 100755 --- a/Scripts/speak-test.ps1 +++ b/Scripts/speak-test.ps1 @@ -8,7 +8,7 @@ function Speak { param([string]$Text) write-output "'$Text'" - $Result = $Voice.speak("$Text") + [void]$Voice.speak("$Text") } try { diff --git a/Scripts/speak-time.ps1 b/Scripts/speak-time.ps1 index 1ea1eb68..92c6617f 100755 --- a/Scripts/speak-time.ps1 +++ b/Scripts/speak-time.ps1 @@ -9,11 +9,20 @@ 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 { diff --git a/Scripts/voice-control.ps1 b/Scripts/voice-control.ps1 index f41ae0f4..b1928ece 100755 --- a/Scripts/voice-control.ps1 +++ b/Scripts/voice-control.ps1 @@ -11,6 +11,7 @@ $PathToRepo = "$PSScriptRoot/.." try { write-output "Init speech recognition engine..." + [system.threading.thread]::currentthread.currentculture=[system.globalization.cultureinfo]"en-US" [void][System.Reflection.Assembly]::LoadWithPartialName("System.Speech") $speechRecogEng = [System.Speech.Recognition.SpeechRecognitionEngine]::new() #$speechRecogEng.InitialSilenceTimeout = 15