Here's a simple VBScript that uses the same speech method to hear how speech-enabled programs pronounce words. This is useful to determine how these programs will pronounce proper names.
sText = InputBox("Enter the text you want the computer to say.", "Text to Speech")To accomplish the same thing in PowerShell, use the following:
sText = Trim(sText)
If sText <> "" Then
set sapi = CreateObject("sapi.spvoice")
$Voice = New-Object -com SAPI.SpVoiceFor example, if you enter my name as it's spelled (Jeff Guillet) you will hear how speech enabled applications mispronounce my name. In the case of Exchange UM directory lookups, this is also how Exchange expects callers to pronounce my name to find a match. If you enter the phonetic spelling of my name (Jeff GheeA) you will hear it pronounced correctly.
$Voice.Speak( "Keith Johnson" )
By testing different phonetic spellings using these scripts, you can determine what to use for the msDS-PhoneticDisplayName attribute in Active Directory.