Added speak-german.ps1

This commit is contained in:
Markus 2021-02-08 19:59:08 +01:00
parent f13901caca
commit 8f819aa0ff
7 changed files with 38 additions and 50 deletions

View File

@ -80,6 +80,7 @@ speak-date.ps1, speaks the current date by text-to-speech (TTS)
speak-english.ps1, speaks the given text with an English text-to-speech (TTS) voice
speak-epub.ps1, speaks the content of the given Epub file by text-to-speech (TTS)
speak-file.ps1, speaks the content of the given text file by text-to-speech (TTS)
speak-german.ps1, speaks the given text with a German text-to-speech (TTS) voice
speak-joke.ps1, speaks the next joke by text-to-speech (TTS)
speak-test.ps1, performs a speak test by text-to-speech (TTS)
speak-text.ps1, speaks the given text by text-to-speech (TTS)

1 Filename Description
80 speak-english.ps1 speaks the given text with an English text-to-speech (TTS) voice
81 speak-epub.ps1 speaks the content of the given Epub file by text-to-speech (TTS)
82 speak-file.ps1 speaks the content of the given text file by text-to-speech (TTS)
83 speak-german.ps1 speaks the given text with a German text-to-speech (TTS) voice
84 speak-joke.ps1 speaks the next joke by text-to-speech (TTS)
85 speak-test.ps1 performs a speak test by text-to-speech (TTS)
86 speak-text.ps1 speaks the given text by text-to-speech (TTS)

View File

@ -88,6 +88,7 @@ The following PowerShell scripts can be found in the [Scripts/](Scripts/) subfol
* [speak-english.ps1](Scripts/speak-english.ps1) - speaks the given text with an English text-to-speech (TTS) voice
* [speak-epub.ps1](Scripts/speak-epub.ps1) - speaks the content of the given Epub file by text-to-speech (TTS)
* [speak-file.ps1](Scripts/speak-file.ps1) - speaks the content of the given text file by text-to-speech (TTS)
* [speak-german.ps1](Scripts/speak-german.ps1) - speaks the given text with a German text-to-speech (TTS) voice
* [speak-joke.ps1](Scripts/speak-joke.ps1) - speaks the next joke by text-to-speech (TTS)
* [speak-test.ps1](Scripts/speak-test.ps1) - performs a speak test by text-to-speech (TTS)
* [speak-text.ps1](Scripts/speak-text.ps1) - speaks the given text by text-to-speech (TTS)

View File

@ -6,24 +6,9 @@
.NOTES Author: Markus Fleschutz / License: CC0
#>
function Speak { param([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())")
& ./speak-english.ps1 "Today is $((Get-Date).ToShortDateString())"
exit 0
} catch {
write-error "ERROR in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"

View File

@ -20,7 +20,7 @@ try {
write-progress "$Text"
$Voice.Voice = $OtherVoice
[void]$Voice.Speak($Text)
write-progress -complete ""
write-progress -complete "$Text"
exit 0
}
}

32
Scripts/speak-german.ps1 Normal file
View File

@ -0,0 +1,32 @@
#!/snap/bin/powershell
<#
.SYNTAX ./speak-german.ps1 [<text>]
.DESCRIPTION speaks the given text with a German text-to-speech (TTS) voice
.LINK https://github.com/fleschutz/PowerShell
.NOTES Author: Markus Fleschutz / License: CC0
#>
param($Text = "")
try {
$Voice = new-object -ComObject SAPI.SPVoice
$Voices = $Voice.GetVoices()
foreach ($OtherVoice in $Voices) {
$Description = $OtherVoice.GetDescription()
if ($Description -like "*- German*") {
if ($Text -eq "") {
$Text = read-host "Enter the text to speak"
}
write-progress "$Text"
$Voice.Voice = $OtherVoice
[void]$Voice.Speak($Text)
write-progress -complete "$Text"
exit 0
}
}
write-error "Sorry, no German text-to-speech (TTS) voice found"
exit 1
} catch {
write-error "ERROR in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}

View File

@ -6,21 +6,6 @@
.NOTES Author: Markus Fleschutz / License: CC0
#>
function Speak { param([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 {
$PathToRepo = "$PSScriptRoot/.."
@ -31,8 +16,7 @@ try {
$Joke = $Table[$Index].Joke
[system.threading.thread]::currentthread.currentculture=[system.globalization.cultureinfo]"en-US"
Speak $Joke
& ./speak-english.ps1 "$Joke"
exit 0
} catch {
write-error "ERROR in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"

View File

@ -6,24 +6,9 @@
.NOTES Author: Markus Fleschutz / License: CC0
#>
function Speak { param([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())")
& ./speak-english.ps1 "It's now $((Get-Date).ToShortTimeString())"
exit 0
} catch {
write-error "ERROR in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"