-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”。

我如何以及在哪里声明它?

4

2 回答 2

0

It is SpeechVoiceEvents.SVEPhoneme

This is all a lot easier if you make this code early bound:

Public vox as New SpVoice

Or better yet, use the .NET wrapper for the sapi, System.Speech assembly.

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
于 2011-02-07T19:51:00.103 回答
0

SVEPhoneme 代表Phoneme 事件,当引擎在说话时完成一个音素时发生。

尝试将 SVEPhoneme 设置为整数 64。

http://msdn.microsoft.com/en-us/library/ms720886(v=vs.85).asp

于 2011-02-07T19:41:55.187 回答