diff --git a/Data/scripts.csv b/Data/scripts.csv index df487ed6..31e507ea 100644 --- a/Data/scripts.csv +++ b/Data/scripts.csv @@ -185,6 +185,7 @@ 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-italian.ps1, speaks the given text with an Italian 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) diff --git a/README.md b/README.md index ed342017..6e5b9110 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Mega Collection of PowerShell Scripts * [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-italian.ps1](Scripts/speak-italian.ps1) - speaks the given text with an Italian 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) diff --git a/Scripts/speak-italian.ps1 b/Scripts/speak-italian.ps1 new file mode 100755 index 00000000..cbbed4c4 --- /dev/null +++ b/Scripts/speak-italian.ps1 @@ -0,0 +1,34 @@ +<# +.SYNOPSIS + speak-italian.ps1 [] +.DESCRIPTION + Speaks the given text with an Italian text-to-speech (TTS) voice +.EXAMPLE + PS> .\speak-italian.ps1 Ciao +.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 "*- Italian*") { continue } + $Voice.Voice = $OtherVoice + [void]$Voice.Speak($Text) + exit 0 + } + write-error "No Italian text-to-speech (TTS) voice found" + exit 1 +} catch { + write-error "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" + exit 1 +}