Fragensteller
Ein unerwarteter Effekt bei Anwendung von SpeechSynthesizer

Frage
-
Hallo,
ich verwende den SpeechSynthesizer 4.0 in meinem VB.net-Programm.
Soweit klappt alles, bis auf einen unerwarteten Effekt:
Ich lese aus einer RichTextBox und immer in der ersten Zeile kommt die Sprecherin bei 4. und 5. Wort des Texts ins "Stolpern". Text wird "verschluckt". Danach wird der gesamte Text ohne Problem vorgelesen.
Dim syn As New SpeechSynthesizer With syn .Rate = 0 ' Geschwindigkeit: -10 bis +10 .Volume = 100 ' Lautstärke: 0 bis 100 .SpeakAsync(myText.Text) End With
Kann man das lösen?
Grüße-
Dietrich
Alle Antworten
-
Hallo Dietrich,
Da SpeakAsync die Steuerung zurückgibt, würdest Du einen Codeauszug nach SpeakAsync veröffentlichen? Tritt dieses Problem bei Speak auf?
Gruß,
DimitarBitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo Dimitar,
zunächst Dank für die Antwort!
Ja, ich habe denselben Effekt, wenn ich Speak nehme...
Aber hier der gewünschte Code:
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) _ Handles ToolStripButton4.Click With ToolStripButton4 If .Text = "vorlesen" Then .Text = "stoppen" .Image = My.Resources.sound .ToolTipText = "stoppen des Vorlesens" 'vorlesen syn = New SpeechSynthesizer With syn ' Stimme festlegen .SelectVoice(ToolStripComboBox1.SelectedItem.ToString) .Rate = 0 ' Geschwindigkeit: -10 bis +10 .Volume = 100 ' Lautstärke: 0 bis 100 ' Text sprechen .SpeakAsync(myText.Text) End With Else .Text = "vorlesen" .Image = My.Resources.sound_none .ToolTipText = "Vorlesen des gesamten Texts" .SpeakAsyncCancelAll() End If End With End Sub
Während des Lesens wird keinerlei andere Aktion im Programm ausgeführt.
Jedoch fällt auf, das der Effekt nur bei einer bestimmten Struktur des Texts auftritt. Ich versuche mal zu erklären:
1. Der Text hat gewissermaßen eine kurze Zeile als Überschrift in der Art
xxxx xxx xxxxxxxxx xxxxxxxx
xxxxxx xxx xx xxxxxxx xxxxx .... es folgen mehrere Zeilen Fließtext.
oder in der gleichen Art nur ohne 'Überschrift', wenn der lange Fließtext sofort gelesen wird.
In diesen beiden Fällen tritt der Effekt auf.2. Der Text hat als kurze Überschrift nur ein einziges Wort - dann tritt der Effekt nicht auf, der Text wird ohne zu stocken gelesen.
Grüße-
Dietrich