Buenas compañero,
La versión que uso es la gratuita 2015, por si quieres descargarla.
De todas formas, te paso lo que hice.
1º) Agregar la referencia de System.Speech
2º) Hice un nuevo Form que lo llamé frmPrincipal y le agregué 1 caja de texto, 1 botón y un ListBox con los números del 1 al 12.
3º) El resto te lo copio&pego más abajo.
Un saludo compañero! ;)
Código vb:
Ver originalImports System.Speech.Synthesis
Public Class frmPrincipal
Private oSpeaker As SpeechSynthesizer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For i = 1 To 12
Me.lstNumeros.Items.Add(i)
Next
Me.lstNumeros.SelectedIndex = 0
'Si pusieramos el speaker antes de la asignación del elemento = 0, nos diría 0.
oSpeaker = New SpeechSynthesizer
End Sub
Private Sub btnLeerTexto_Click(sender As Object, e As EventArgs) Handles btnLeerTexto.Click
If IsNumeric(Me.txtQueDecir.Text) Then
decirNumero(CInt(Me.txtQueDecir.Text))
Else
decirTexto(Me.txtQueDecir.Text)
End If
End Sub
Private Sub lstNumeros_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstNumeros.SelectedIndexChanged
decirMes(CInt(Me.lstNumeros.SelectedItem))
End Sub
Private Sub decirMes(ByVal iNumero As Integer)
If Not IsNothing(oSpeaker) Then
Dim arrMeses() As String = {"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"}
decirTexto(arrMeses(iNumero - 1))
End If
End Sub
Private Sub decirNumero(ByVal iNumero As Integer)
If Not IsNothing(oSpeaker) Then
oSpeaker.Speak("Número: " & iNumero.ToString())
End If
End Sub
Private Sub decirTexto(ByVal sTexto As String)
If Not IsNothing(oSpeaker) Then
oSpeaker.Speak(sTexto)
End If
End Sub
End Class