Mein Problem ist, dass die Stimme mit der der Text gesprochen wird immer Microsoft Anna (Englisch) ist, obwohl ich LH Anna, LH Stefan und ScanSoft Steffi (zu finden unter: http://www.filefront.com/8611922/RSSolo ... Steffi.exe) installiert und in den Windows Spracheinstellungen eingestellt habe.
Bei diesem VB Beispiel zur Auswahl der Stimme stehe ich irgendwie auf dem Schlauch um es in PureBasic umzusetzen.
Code: Alles auswählen
Private V As SpeechLib.SpVoice
Private T As SpeechLib.ISpeechObjectToken
Private Sub Command1_Click()
    If List1.ListIndex > -1 Then
        'Set voice object to voice name selected in list box
        'The new voice speaks its own name
        Set V.Voice = V.GetVoices().Item(List1.ListIndex)
        V.Speak V.Voice.GetDescription
    Else
        MsgBox "Please select a voice from the listbox"
    End If
End Sub
Private Sub Form_Load()
    Dim strVoice As String
    Set V = New SpVoice
    'Get each token in the collection returned by GetVoices
    For Each T In V.GetVoices
        strVoice = T.GetDescription     'The token's name
        List1.AddItem strVoice          'Add to listbox
    Next
End Sub
Code: Alles auswählen
XIncludeFile  "COMatePLUS.pbi"
Define.COMateObject objSpeak
objSpeak = COMate_CreateObject( "SAPI.SpVoice" ) 
If objSpeak   
  
  ;- ob das wohl richtig ist????? und wenn ja, wie gehts weiter?????
  objSpeak\GetObjectProperty( "GetVoices()" )
  
  ;- Anzeigen und ändern der Lautstärke geht
  Debug objSpeak\GetIntegerProperty( "Volume"        )
        objSpeak\SetProperty(        "Volume = '80'" ) 
  Debug objSpeak\GetIntegerProperty( "Volume"        )
  ;- Dieser Text wird leider nur von Anna gesprochen (Englisch)   
  objSpeak\Invoke( "Speak('Dieser Text soll in Deutsch gesprochen werden', 0 )" ) 
  objSpeak\Release() 
   
EndIf