dim montableau() as string = Textbox1.text.split(" "c)
voix.Speak(montableau(2))
voix.Speak(Textbox1.text.split(" "c)(2))
If Char.IsSeparator(textbox.text.Last) Or textbox.text.LastIndexOf(".") = textbox.text.Length - 1 Then
for numérodumot = 0 to nombremaxdanslaphrase -1 voix.Speak(Textbox1.text.split(" "c)(numérodumot)) numero = numéro + 1 next
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionTry Dim b As Integer Dim nombredemot As Integer = chainedetexte.Split(" "c).Count Dim mot() As String = chainedetexte.Split(" "c) For b = 0 To nombredemot voix.Speak(mot(b)) b = b + 1 If b = nombredemot Then Timer1.Stop() Next Catch ex As Exception End Try
Imports System.Speech Public Class Form1 Dim WithEvents Voix As New Speech.Synthesis.SpeechSynthesizer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim texte As String = "mon chat est noir et blanc" Voix.SpeakAsync(texte) End Sub Private Sub Voix_StateChanged(ByVal sender As Object, ByVal e As System.Speech.Synthesis.StateChangedEventArgs) Handles Voix.StateChanged If e.State = Synthesis.SynthesizerState.Ready Then MessageBox.Show("fin de lecture") End If End Sub End Class
et on entendrait :
"létoale luiluiluirluira dededemademédemin" !
Oui du temps de vb6
Dans cette application j'ai du texte s'écrie dans un textbox lettre à lettres. Mon problème est le suivant :
J'aimerais que ma lecture de texte ne se fasse que entre les espaces, c'est à dire progressivement.
Dans ce cas, comme tu l'as signalé, il vaut mieux utiliser l'événement KeyUp, remonter jusqu'à l'espace précédent (ou le début de ligne si c'est le premier mot voire la ponctuation précédente) et lire le mot.
Imports System.Speech Public Class Form1 Dim WithEvents txtSaisie As New TextBox Dim WithEvents Voix As New Synthesis.SpeechSynthesizer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Controls.Add(txtSaisie) End Sub Private Sub txtSaisie_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtSaisie.KeyUp If e.KeyCode = Keys.Space Then Voix.SpeakAsync(txtSaisie.Text.Split(" "c)(txtSaisie.Text.Split(" "c).Length - 2)) End If End Sub End Class
Private Sub Textbox_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Textbox.TextChanged Dim voix As New SpeechSynthesizer Try If Char.IsSeparator(textbox.Text.Last) Then voix.SpeakAsync(textbox.Text.Split(" "c)(textbox.Text.Split(" "c).Length - 2)) End If Catch ex As Exception End Try End Sub