From bc2a60e3d7bdd5acce375aa641a3f2bd54a39557 Mon Sep 17 00:00:00 2001 From: Markus Fleschutz Date: Sat, 17 Jul 2021 15:19:29 +0200 Subject: [PATCH] Add speak-french.ps1 --- Data/scripts.csv | 1 + README.md | 1 + Scripts/speak-french.ps1 | 33 +++++++++++++++++++++++++++++++++ Scripts/speak-german.ps1 | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 Scripts/speak-french.ps1 diff --git a/Data/scripts.csv b/Data/scripts.csv index b9255ea1..b0fcf88f 100644 --- a/Data/scripts.csv +++ b/Data/scripts.csv @@ -180,6 +180,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-french.ps1, speaks the given text with a French text-to-speech (TTS) voice 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) diff --git a/README.md b/README.md index 0f4e15df..0ff43d75 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Mega Collection of PowerShell Scripts * [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-french.ps1](Scripts/speak-french.ps1) - speaks the given text with a French text-to-speech (TTS) voice * [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) diff --git a/Scripts/speak-french.ps1 b/Scripts/speak-french.ps1 new file mode 100644 index 00000000..b665a8f4 --- /dev/null +++ b/Scripts/speak-french.ps1 @@ -0,0 +1,33 @@ +<# +.SYNOPSIS + speak-french.ps1 [] +.DESCRIPTION + Speaks the given text with a French text-to-speech (TTS) voice +.EXAMPLE + PS> .\speak-french.ps1 Salut +.LINK + https://github.com/fleschutz/PowerShell +.NOTES + Author: Markus Fleschutz / License: CC0 +#> + +param([string]$Text = "") + +try { + if ($Text -eq "") { $Text = read-host "Enter the text to speak" } + + $Voice = new-object -ComObject SAPI.SPVoice + $Voices = $Voice.GetVoices() + foreach ($OtherVoice in $Voices) { + $Description = $OtherVoice.GetDescription() + if ($Description -notlike "*- French*") { continue } + $Voice.Voice = $OtherVoice + [void]$Voice.Speak($Text) + exit 0 + } + write-error "Sorry, no French text-to-speech (TTS) voice found" + exit 1 +} catch { + write-error "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" + exit 1 +} diff --git a/Scripts/speak-german.ps1 b/Scripts/speak-german.ps1 index be723a8f..05650099 100755 --- a/Scripts/speak-german.ps1 +++ b/Scripts/speak-german.ps1 @@ -4,7 +4,7 @@ .DESCRIPTION Speaks the given text with a German text-to-speech (TTS) voice .EXAMPLE - PS> .\speak-german.ps1 "Sauerkraut" + PS> .\speak-german.ps1 Hallo .LINK https://github.com/fleschutz/PowerShell .NOTES