Rubrik: Multimedia & Sound · Audio | VB-Versionen: VB2008 - VB2015 | 15.04.16 |
Sprachausgabe mit SpeechSynthesizer mittels UserControl Ein UserControl zur Sprachausgabe von Text | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 5.564 |
ohne Homepage | System: Win7, Win8, Win10, Win11 | Beispielprojekt |
Angeregt vom Tipp Dieter Otters Sprachausgabe mit der integrierten Speech-Engine (ab Framework 3.0) habe ich ein UserControl erstellt, das in .NET-Anwendungen benutzt werden kann.
Das Control besteht aus den Buttons (als Picturebox programmiert!)
- Mute (stumm)
- Pause (pausieren)
- Start (starten)
- Stopp (stoppen)
- Minus (Lautstärke geringer)
- Plus (Lautstärke höher)
einer Combobox
- Voices (die vorhandenen Stimmen; die Box ist standardmäßig 'Unvisible'!))
und einem Label
- Anzeige des Status
Dazu noch ein paar Erläuterungen:
Als Eigenschaften hat das Control die
- TextToSpeech-Eigenschaft, die den zu sprechenden Text übernimmt. Der Text wird vom rufenden Hauptprogramm an das Control übergeben.
Beispiel im rufenden Programm:
Dim WithEvents ctrlSP As New ctrlSpeech ... ctrlSP.TextToSpeech = myText
- spRate-Eigenschaft, die die Lesegeschwindigkeit übernimmt (Standard = 0)
ctrlSP.spRate = 5
Die Besonderheit des Programms ist, dass die Aktionen für Mute, Minus und Plus nur mittels API-Funktionen realisierbar waren. Diese Aktionen sollten eben bei laufender Sprachausgabe funktionieren.
Ich zeige auch ein Event 'synProgress' zum SpeechSynthesizer, das ich allerdings nicht real verwende; es soll nur zur Demonstration sein.
Mit dem Code zum Control übergebe ich auch noch ein UserControl ‚RepeatButton'. Dieser Button gestattet die Wiederholung des Klickens auf einem Button nach einem vorgegebenen Zeitintervall. Diese Art Button wird für die Lautstärkeregelung angewandt.