Monday, September 28, 2015

Maximus is coming . . .

This has been an ongoing project\side project for myself over the last month or two. It's more or less a PowerShell Module loaded with functions to allow you to do great things at great speeds. In all I think it contains about 30 functions, I'm sure this will continue to fluctuate.... which leads me to why I'm actually writing this, I hope to possible\hopefully treat this page as the HelpURI for Maximus.

but anyhow..... here is one, one I just wrote today actually. This is what I would call an oldie but a goodie.

Function Invoke-Speech {
<#
.SYNOPSIS  
   This functions allows you to make a computer speak.
 
.DESCRIPTION
   This function allows you to make Windows talk with the voice of either Microsoft David or Microsoft Zira.

.EXAMPLE
   PS C:\> Invoke-Speech -Gender Female -Message "You Sir, look like you are ready for a coffee break."

.NOTES  
    
    Version             : 5.0+ Verified
    
    Author/Copyright    : © Matthew Kerfoot - All Rights Reserved
    
    Email/Blog/Twitter  : mkkerfoot@gmail.com  www.TheOvernightAdmin.com  @mkkerfoot
    
    Disclaimer          : THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK
                          OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.
                          While these scripts are tested and working in my environment, it is recommended 
                          that you test these scripts in a test environment before using in your production environment
                          Matthew Kerfoot further disclaims all implied warranties including, without limitation, any 
                          implied warranties of merchantability or of fitness for a particular purpose. The entire risk 
                          arising out of the use or performance of this script and documentation remains with you. 
                          In no event shall Matthew Kerfoot, its authors, or anyone else involved in the creation, production, 
                          or delivery of this script/tool be liable for any damages whatsoever (including, without limitation, 
                          damages for loss of business profits, business comerruption, loss of business information, or other 
                          pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, 
                          even if Matthew Kerfoot has been advised of the possibility of such damages

    Assumptions         : ExecutionPolicy of AllSigned (recommended), RemoteSigned or Unrestricted (not recommended)
#>
[CmdletBinding(SupportsShouldProcess)]
                Param(
                        [Parameter(Mandatory=$True, ValueFromPipelineByPropertyName=$true, HelpMessage = "David or Zira?", Position=0)]
                        $Gender,
                        [Parameter(Mandatory=$True, ValueFromPipelineByPropertyName=$true, HelpMessage = "What would you like to say?", Position=1)]
                        $Message
                     )
$Voice = New-Object -ComObject sapi.spvoice
Switch($Gender)
    {
        Male    { $Voice.Voice = $Voice.GetVoices().Item("0") ; $Voice.Speak($Message) }
        Female  { $Voice.Voice = $Voice.GetVoices().Item("1") ; $Voice.Speak($Message) }
        Default { $Voice.Speak($Message) } <# Microsofts default is Male. #>
    }
}
Invoke-Speech -Gender Female -Message "You Sir, look like you are ready for a coffee break."

No comments:

Post a Comment