vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Windows Stimmenauswahl per VB umstellen 
Autor: V A T
Datum: 04.02.15 02:50

Hallo OGGI,

ich hatte mich etwas zu früh gefreut und muss dich noch einmal "belästigen". Denn ich bin auf ein Problem gestoßen, dass ich mangels Know-how nicht lösen kann, dass Dich aber wahrscheinlich nur ein müdes Lächeln kostet. Vielleicht kannst Du helfen:

[u]Hier der Status:

1. Ich habe ein Projekt, in dem es mehrere Formen gibt. Um die Stimme nach deinem Code zu ändern habe ich ein eigenständiges Fenster, in dem man die Stimme per Listbox wählen kann.
Über einen Command-Button wird der Name der ausgewählten Stimme dann vorgelesen und die Form verlassen.

Option Explicit
 
Private V As SpeechLib.SpVoice
Private T As SpeechLib.ISpeechObjectToken
 
Private Sub Form_Load()
    Dim strVoice As String
    'Vorhandene Stimmen auslesen und in Listbox einfügen
    Set V = New SpVoice
    For Each T In V.GetVoices
        strVoice = T.GetDescription             'Name der Stimme lesen
        Listbox_Stimmen.AddItem strVoice        'zu Listbox hinzufügen
    Next
    Listbox_Stimmen.ListIndex = 0               'Erste Stimme in Listbox als 
    ' ausgewählt markieren
End Sub
 
Private Sub cmd_Exit_Click()
    Dim ObjTextToSpeech As Object
    Dim Lautstaerke As Long
    Dim Text As String
 
    'Text und Geschwindigkeit festlegen
    Lautstaerke = -4                                     _
      'Vorlesegeschwindigkeit von -10 bis +10, 0=Standard
    Text = Listbox_Stimmen.Text
 
    'Sprechen
    Set V.voice = V.GetVoices().Item(Listbox_Stimmen.ListIndex)
    V.Rate = Lautstaerke
    V.Speak Text, SVSFlagsAsync
 
    'Stimmauswahl-Fenster verlassen
    form_Hauptmenue.Visible = True
    Unload Me
End Sub
2. In meinem Projekt lasse ich den PC bisher sprechen, indem ich ein Modul erstellt habe, in dem folgender Code steht:

Option Explicit
 
Public Sub sprachausgabe(Text As String)
    Dim voice As Variant
 
    'Sprachausgabe
    Set voice = CreateObject("SAPI.SpVoice")
    voice.Rate = -5                     'Lesegeschwindigkeit
    voice.Volume = 100                  'Leselautstärke
    DoEvents
    voice.Speak Text, 0                 'Vorlesen
End Sub
Der Aufruf erfolgt dann aus diversen Formen heraus mit
sprachausgabe (String-Variable)
.
Der Vorteil: Ich musste die VB-Befehle zur Sprachausgabe nur einmal hinterlegen, kann auf sie von überall im Projekt flexibel zugreifen.

Nun das Problem: Scheinbar nutzt Dein Code und mein Code nicht dieselbe "Art" zu sprechen (ich muss das so ungeschickt ausdrücken, weil ich es nicht besser erklären kann). D.h. ich kann zwar über Deinen Code die Sprache umstellen und damit einmal was sprechen, wenn mein Programm danach aber wieder auf meinen "alten" Code zur Sprachausgabe zurückgreift, spricht Windows nicht mit der zuvor über Deinen Code eingestellten Sprache, sondern mit der in der Windows-Systemsteuerung hinterlegten. Ich erkläre mir das so, dass die durch Deinen Code gar nicht geändert (das war ja mein ursprünglicher Laienhafter Lösungsansatz) wird. Was ja grundsätzlich auch die viel bessere Variante ist!

Meine Frage: Wie kann ich Deinen Code so umbauen, dass die Ergebnisse der Auswahl vom Programm gemerkt (z.B. Ablage in öffentlichen Variablen oder sowas) werden und ich sie von jedem Punkt im Projekt aufrufen und zum Sprechen nutzen kann (dann brauche ich meinen "alten" Code zum Sprechen nicht mehr und nehme nur noch Deinen). Also kurz gesagt: Ich will Auswahl der Sprache mit der gesprochen werden soll (s. Code oben + Form-übergreifendes Merken der Einstellungen) und das Sprechen mit der ausgwählten Sprache (noch kein Code vorhanden) voneinander trennen.

Hältst Du das für einen sinnvollen Ansatz und kannst du mir einen Realisierungstipp geben? Ich wäre Dir echt dankbar!

Gruß

V A T

P.S.: Übrigens ne sehr interessante Homepage hast Du! Ich werde sie weiterempfehlen!

Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!!

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Windows Stimmenauswahl per VB umstellen4.398V A T02.02.15 00:51
Re: Windows Stimmenauswahl per VB umstellen3.596Zardoz02.02.15 04:29
Re: Windows Stimmenauswahl per VB umstellen3.447V A T02.02.15 23:24
Re: Windows Stimmenauswahl per VB umstellen3.531OGGI03.02.15 09:46
Re: Windows Stimmenauswahl per VB umstellen3.483V A T03.02.15 15:22
Re: Windows Stimmenauswahl per VB umstellen3.806V A T04.02.15 02:50
Re: Windows Stimmenauswahl per VB umstellen3.523OGGI04.02.15 09:08
Re: Windows Stimmenauswahl per VB umstellen3.434V A T06.02.15 17:41
Re: Windows Stimmenauswahl per VB umstellen3.402OGGI06.02.15 18:13
Re: Windows Stimmenauswahl per VB umstellen3.389V A T06.02.15 18:51
Re: Windows Stimmenauswahl per VB umstellen3.453OGGI07.02.15 07:38

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel