Como usar loquendo en vb.net (Texto a voz)

Requisitos:
  • Tener instalado loquendo tts director

Youtube: http://youtu.be/U1MSh4rk-to

Instrucciones:

  • Primero abrimos visual studio y creamos un nuevo proyecto, menú Archivo-->Nuevo Proyecto.



  • Elegimos plantilla visual basic, Aplicación de Windows forms y le ponemos un nombre al proyecto y aceptamos.


  • Ahora agregamos referencia en Menu Proyecto--> Agregar referencia


  • En la ventana Administrador de referencia seleccionamos menú COM y en la lista del medio buscamos “Loquendo TTS7 ActiveX Control module” le damos check y aceptamos.


  • Ahora agregamos los siguientes elementos al formulario: 1 combobox, 1 Textbox, 1 Button 1 Checkbox, 1 Trackbar.

  • Al combobox le cambiamos la propiedad “Dropdownstyle” elegimos en la lista  DropdownList”
  • Al button le cambiamos su propiedad “Text” por “Ejecutar” o “Reproducir”, como quieran.
  • Al checkbox la propiedad “Text” por “Guardar”
  • Al Trackbar su propiedad “Maximum” por “100”, la propiedad “TickStyle” por “None” y propiedad “Value” por “20”


  • Presionan la tecla F7 y entraran al editor de código. Arriba de todo sobre el “Public class Form1”, escriben: 
    Imports LTTS7Lib
    si este componente LTTS7Lib aparece entonces vamos por buen camino.


Codigo completo:



Imports LTTS7Lib
Public Class Form1
    Dim Sintetizador As New LTTS7

    Sub New()
        InitializeComponent()
        Sintetizador.Voice = "Carmen"
        Sintetizador.Language = "SpanishAm"
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'Ponemos ruta de las voces instaladas en loquendo
        Dim Carpeta_loquendo As String = My.Computer.FileSystem.SpecialDirectories.ProgramFiles & "\Loquendo\LTTS7\data"

        If My.Computer.FileSystem.DirectoryExists(Carpeta_loquendo) = True Then
            Dim directorio As New IO.DirectoryInfo(Carpeta_loquendo)
            Dim voces As IO.FileInfo
            For Each voces In directorio.GetFiles
                If voces.Extension = ".vcf" Then
                    'Agregamos al combobox las voces encontradas
                    Me.ComboBox1.Items.Add(System.IO.Path.GetFileNameWithoutExtension(voces.Name))
                End If
            Next
            If Me.ComboBox1.Items.Count > 0 Then
                Me.ComboBox1.SelectedIndex = 0 'selecciona la primera voz del combobox
            End If
            Me.TextBox1.Select()
        Else
            MsgBox("No existe la carpeta: " & vbNewLine & Carpeta_loquendo, MsgBoxStyle.Critical, "")
        End If
       
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Sentencia Try para que no se cuelgue si ocurre algun error
        Try
            If Me.ComboBox1.Items.Count = 0 Then
                MsgBox("Parece que no hay voces instaladas.", MsgBoxStyle.Critical, "")
            Else
                Sintetizador.Voice = Me.ComboBox1.SelectedItem
                Sintetizador.Volume = Me.TrackBar1.Value
                If Trim(Me.TextBox1.Text) = "" Then 'Si es nada muestra mensaje  ó lo dice
                    'MsgBox("Escribe texto a leer.", MsgBoxStyle.Information, "")
                    Sintetizador.Read("Escribe texto a leer.")
                Else
                    If Me.ComboBox1.SelectedIndex = -1 Then 'Sino esta seleccionado ninguno muestra mensaje ó lo dice
                        'MsgBox("Seleccione voz para leer texto.", MsgBoxStyle.Information, "")
                        Sintetizador.Read("Seleccione una voz para leer texto.")
                    Else
                        If Me.CheckBox1.Checked = False Then
                            'lee texto en textbox con la voz seleccionada en el combobox
                            Sintetizador.Read(Me.TextBox1.Text)
                        Else 'Guardamos como audio wav
                            Dim save As New SaveFileDialog
                            save.Filter = "Wav|*.wav"
                            If save.ShowDialog = Windows.Forms.DialogResult.OK Then
                                Sintetizador.Record(Me.TextBox1.Text, save.FileName)
                            End If
                        End If
                    End If
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class

Descargar proyecto completo

Enlace reparado 11/07/2015. Por Mega.
(No me habia dado cuenta que no funcionaba.)