2011-02-07 64 views
-1
Imports SpeechLib 

Public Class Form1 
    Public vox = CreateObject("sapi.spvoice") 
    Private Sub cmdSpeak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSpeak.Click 
     Dim t As String = "Hello , This is a Text" 
     Say(t) 
    End Sub 

    Public Sub Say(ByVal text As String) 
     vox.Speak(text,SpeechVoiceSpeakFlags.SVSFlagsAsync) 
    End Sub 

    Private Sub cmdPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPause.Click 
     vox.pause() 
    End Sub 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     vox.AlertBoundary = SVEPhoneme 
    End Sub 
End Class 

我得到一個錯誤錯誤編程

名稱 'SVEPhoneme' 未聲明。

如何以及在哪裏聲明?

回答

0

這是SpeechVoiceEvents.SVEPhoneme

這畢竟是一個容易得多,如果你讓這段代碼早期綁定:

Public vox as New SpVoice 

或者更好的是,使用.NET包裝爲sapi,System.Speech程序集。

Imports System.Speech.Synthesis 

Public Class Form1 
    Public vox As New SpeechSynthesizer 

    Public Sub Say(ByVal text As String) 
     vox.SpeakAsync(text) 
    End Sub 
End Class