Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

SpeakStream Methode
#1
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


Angehängte Dateien
.xlsm   Speak Stream Method.xlsm (Größe: 16,59 KB / Downloads: 3)
Antworten Top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Josefine Baker
Antworten Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Josefine Baker
Antworten Top
#4
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Josefine Baker
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste