Conversión de texto a voz con SpVoice (SAPI) - Visual Basic

El objeto de automatización SpVoice (Eventos) define los tipos de eventos que pueden ser recibidas por un SpVoice objeto de un motor de texto a voz.


Publicado: Editado: Estado:

El objeto SpVoice trae las conversión de texto a voz (TTS) capacidades del motor a las aplicaciones que utilizan la automatización SAPI. Una aplicación puede crear numerosos objetos SpVoice, cada una independiente de y capaces de interactuar con los demás. Un objeto SpVoice, por lo general a que se refiere simplemente como una voz, se crea con valores de propiedades por defecto por lo que está listo para hablar de inmediato.

Propiedad Descripción
AlertBoundary Property Obtiene y establece el límite de alerta, que especifica cómo una voz que habla hace una pausa en sí las alertas.
AllowAudioOutputFormatChangesOnNextSet Property Obtiene y establece el indicador que especifica si se permite que la voz, para ajustar el formato de salida de audio automáticamente.
AudioOutput Property Obtiene y establece el objeto de salida de audio actual utilizado por la voz.
AudioOutputStream Property Obtiene y establece el objeto de flujo de audio actual utilizado por la voz.
EventInterests Property Obtiene y establece los tipos de eventos recibidos por la voz.
Priority Property Obtiene y establece el nivel de prioridad de la voz.
Rate Property Obtiene y establece la velocidad de la voz de la voz.
Status Property Devuelve el estado del habla y el evento actual de la voz en un objeto ISpeechVoiceStatus.
SynchronousSpeakTimeout Property Obtiene y establece el intervalo, en milisegundos, después de lo cual las llamadas hablar y SpeakStream síncronos de la voz se interrumpirá cuando su dispositivo de salida no está disponible.
Voice Property Obtiene y establece el miembro activo de la colección Voces.
Volume Property Obtiene y establece el nivel de volumen de base (sonoridad) de la voz.

 

Método Descripción
DisplayUI Method Inicia la pantalla de la interfaz de usuario especificado.
GetAudioOutputs Method Devuelve una selección de fichas de salida de audio disponibles.
GetVoices Method Devuelve una selección de voces disponibles a la voz.
IsUISupported Method Determina si se admite la interfaz de usuario especificado.
Pause Method Hace una pausa en la voz en el límite más cercano de alerta y cierra el dispositivo de salida, permitiendo que sea utilizado por otras voces.
Resume Method Provoca la voz para reanudar hablando durante la pausa.
Skip Method Hace que la voz para saltar hacia adelante o hacia atrás por el número especificado de elementos dentro de la secuencia de texto de entrada actual.
Speak Method Inicia el hablar de una cadena de texto, archivo de texto o archivo de onda por la voz.
SpeakCompleteEvent Method Obtiene un identificador de evento de la voz que se marcó cuando la voz termine de hablar.
SpeakStream Method Inicia el hablar de una secuencia de texto o un archivo de sonido de la voz.
WaitUntilDone Method Bloques de la persona que llama hasta que la voz ha terminado de hablar o ha transcurrido el intervalo de tiempo especificado.

Ejemplo

Public Class frmSapiVoice

    Private Sub frmSapiVoice_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        rcConversacion.Text = "Mr. Sapi" & vbCrLf & "Ha iniciado: " & DateTime.Now.ToString("dd/MM/yyyy") & " " & DateTime.Now.ToShortTimeString()
    End Sub

    Private Sub txtEnviar_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtEnviar.KeyPress
        If ChrW(Keys.Enter) = e.KeyChar Then
            btnEnviar.PerformClick()
        End If
    End Sub

    Public Sub Mensaje(ByVal texto As String)
        Dim voz
        voz = CreateObject("sapi.spvoice")
        voz.volume = 100
        voz.rate = 2
        voz.speak(texto)
        voz.pause()
    End Sub

    Private Sub btnEnviar_Click(sender As Object, e As EventArgs) Handles btnEnviar.Click
        rcConversacion.Text = rcConversacion.Text + vbCrLf & txtEnviar.Text

        If txtEnviar.Text = "hola" Then
            rcConversacion.Text = rcConversacion.Text + vbCrLf & "> Hola soy Mr. Sapi"
            Mensaje("Hola soy Mr. Sapi")
        End If

        txtEnviar.Text = ""
    End Sub
End Class

 

Bibliografía
  1. https://msdn.microsoft.com/en-us/library/ms723587(v=vs.85).aspx
  2. https://msdn.microsoft.com/en-us/library/ms723602(v=vs.85).aspx
Dar puntos de agradecimiento
Reportar esta publicación

Déjanos tu comentario

Comentarios

mariogarcia

(Administrador)

Intereses

música, diseño, programación, electrónica, historia, geografía

Puntos: 146 Votos: 113