Clever-Excel-Forum

Normale Version: SpeakStream Methode
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bekomme den Beispielcode auf folgender Seite von Microsoft

https://msdn.microsoft.com/en-us/library/ms723611(v=vs.85).aspx

für die SpeakStream Methode nicht zum Laufen. (vgl. Dateianhang)

Bitte schaut euch das Ganze mal an und ergänzt den Code entsprechend.

Vielen Dank für eure Hilfe im Voraus.

Code:
Code:
Option Explicit

Private M As SpeechLib.SpVoice      'M is a male voice
Private F As SpeechLib.SpVoice      'F is a female voice
Private S As SpeechLib.SpFileStream

Private Sub Command1_Click()

   'Build a local file path and open it as a stream
   Set S = New SpFileStream
   Call S.Open("C:\SpeakStream.wav", SSFMCreateForWrite, False)

   'Female voice speaks into the file stream and creates a WAV file
   Set F.AudioOutputStream = S
   F.Speak "cee : \ speak stream dot wave", SVSFNLPSpeakPunc
   S.Close

   'Male voice speaks female voice's stream
   Call S.Open("C:\SpeakStream.wav", , False)
   M.Speak "i will now demonstrate the speak stream method."
   M.SpeakStream S
   M.Speak "that sounded like " & F.Voice.GetDescription & ", but it was me."

End Sub

Private Sub Form_Load()

   'Create voices
   Set F = New SpVoice
   Set F.Voice = F.GetVoices("gender=female").Item(0)
   Set M = New SpVoice
   Set M.Voice = M.GetVoices("gender=male").Item(0)

End Sub
Moin!
Ich habe mir die Datei nicht angesehen.
Verweis gesetzt?
Ergänzend:
Dass der Code nicht viel mit Office zu tun hat, weißt Du?

Gruß Ralf
Hallo,

1. es fehlt der Verweis auf die Microsoft Speach Object Library (sapi.dll)
2. Ersetze die Zeile Private Sub Form_Load() mit Private Sub UserForm_Initialize()

Gruß Uwe
Hallöchen,

wenn Du einen VB-Code verwenden willst, wirst Du nicht immer Erfolg haben Sad

- im VBA gibt es statt dem Form_Load entweder userform_activate oder userform_initialize
- Du musst einen Verweis auf Microsoft Speach ... setzen. Da gibt es eventuell zwei, versuch erst mal das zweite.
- bei mir gibt es keine solche männliche Stimme Sad
- eventuell sieht es das System nicht gerne, wenn Du direkt in C:\ etwas speichern willst.

Code:
Option Explicit
'Public M As SpeechLib.SpVoice      'M is a male voice
Public F As SpeechLib.SpVoice      'F is a female voice
Public S As SpeechLib.SpFileStream
Sub CommandButton1_Click()
    'Build a local file path and open it as a stream
    Set S = New SpFileStream
    Call S.Open("C:\SpeakStream.wav", SSFMCreateForWrite, False)
    'Female voice speaks into the file stream and creates a WAV file
    Set F.AudioOutputStream = S
    F.Speak "cee : \ speak stream dot wave", SVSFNLPSpeakPunc
    S.Close
    'Male voice speaks female voice's stream
    Call S.Open("C:\SpeakStream.wav", , False)
'    M.Speak "i will now demonstrate the speak stream method."
'    M.SpeakStream S
'    M.Speak "that sounded like " & F.Voice.GetDescription & ", but it was me."
    Set S = Nothing
    Unload Me
End Sub

Sub userform_initialize()
    'Create voices
    Set F = New SpVoice
    Set F.Voice = F.GetVoices("gender=female").Item(0)
'    Set M = New SpVoice
'    Set M.Voice = M.GetVoices("gender=male").Item(0)
End Sub