-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

SVEPhonemeは、エンジンが話しているときに音素を完了したときに発生する音素イベントを表します。

SVEPhonemeを整数64に設定してみてください。

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

于 2011-02-07T19:41:55.187 に答える
0

それはSpeechVoiceEvents.SVEPhonemeです

このコードを早期にバインドすると、これはすべてはるかに簡単になります。

Public vox as New SpVoice

または、sapiのSystem.Speechアセンブリに.NETラッパーを使用することをお勧めします。

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 に答える