Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 2 Min.

.NET/VB: Texte vorlesen lassen

Manchmal ist es sinnvoll, einen Text nicht nur anzuzeigen, sondern ihn vom Computer vorlesen zu lassen. Beispielsweise, wenn man für eine Kinder-App einem vor sich hin dösenden Bären lustige Sprüche ins Maul legen will.
Zugegeben, die in Windows vorinstallierten Stimmen sind nicht gerade berauschende Erzähler, aber man kann die Text-to-Speach-Engines in jedem seiner Programme einsetzen. Das .NET Framework stellt dafür im Namensraum SpeechSynthesizer geeignete Klassen und Methoden zur Verfügung. Beispielsweise liefert die Methode SpeechSynthesizer.GetInstalledVoices() die verfügbaren Stimmen. Auf meinem Windows-10-Rechner sind das Hedda (deutsch) und Zira (englisch). Der Test auf die vorinstallierten Voices klappt so:
Private Sub MainWindow_Loaded(...) Handles Me.Loaded 
...
  Try
    synthesizer = New SpeechSynthesizer()
    Dim Stimmen As String = ""
    For Each Voice In synthesizer.GetInstalledVoices()
      Stimmen += Voice.VoiceInfo.Name + " | " +
                 Voice.VoiceInfo.Culture.ToString + vbCrLf
    Next
    MsgBox(Stimmen)

  Catch ex As Exception
  End Try
...
End Sub
 
Meine Windows-10-Anwendung ist ein Bild von einem Bären, dem Kids Fragen stellen können. Die Antworten darauf werden aus rund 150 Vorgaben per Zufall ausgewählt. Fast immer kommt etwas lustiges dabei heraus. Dass der Bär per Computerstimme antwortet, klappt mit Speak(text):
Private Sub Speak(ByVal text As String)
  synthesizer.SelectVoice("Microsoft Hedda Desktop")
  'synthesizer.SelectVoice("Microsoft Zira Desktop") spricht englisch

  synthesizer.Volume = 80
  synthesizer.Rate = 1synthesizer.SpeakAsync(text)
End Sub
 
Extra-Tipp: In der Registry gibt es oft noch weitere Text-to-Speach-Engines (bei mir: Katja und Stefan) die aber nicht gentutzt werden können. Diese Anleitung zeigt, wie man sie dennoch nutzen kann.

Neueste Beiträge

Builder meets Faker - Testdata-Builder, Teil 2
Wer viele Testdaten braucht, liebt Bogus: Die Library erzeugt auf Knopfdruck realistische Daten und geht mit dem Builder-Pattern eine perfekte Kombination ein.
6 Minuten
12. Nov 2025
DDC hakt nach: Hör auf, Dich über Verbindungsstrings zu ärgern
Die App läuft lokal wie geschmiert, aber sobald Backend-Services ins Spiel kommen, stottert die Maschine. Connection Strings, die nicht wollen. Emulator-Konfigurationen, die nerven. Johan Smarius erklärt im Interview und auf der .NET Developer Conference 2025, wie es anders - und viel besser geht.
4 Minuten
10. Nov 2025
Chunks mit Köpfchen - KI für KMU, Teil 1
Wie trenne ich Textinformationen in sinnvolle Segmente?
7 Minuten
Miscellaneous

Das könnte Dich auch interessieren

Attraktives GUI mit Spectre.Console - Best of NuGet, Teil 6
Mit der Bibliotheksfamilie Spectre.Console steht ein neues Produkt ante portas, das die Realisierung von visuell ansprechenden Kommandozeileninterfaces zu erleichtern sucht.
7 Minuten
29. Okt 2025
Loggingdaten-Einlaufstelle mit Komfortfunktionen - Best of NuGet, Teil 5
Die in Android implementierte Logging-Funktion ist ein leistungsfähiges Beispiel für moderne Logging-Systeme. Mit Serilog steht ein ähnliches System für .NET-Applikationen zur Verfügung, das allerdings einige weit über das große Vorbild hinausgehende Funktionen offeriert.
6 Minuten
22. Okt 2025
Benchmark im Unit-Test-Stil - Best of NuGet, Teil 4
NuGet-Pakete können das Leben des .NET-Entwicklers sogar um neue Werkzeuge erweitern, die sich auf den Entwicklungsworkflow (und nicht den bearbeiteten Code) auswirken. Mit BenchmarkDotNet steht ein Musterbeispiel dieses Konzepts zur Verfügung, das die Überprüfung der Performance von Code aller Arten ermöglicht.
7 Minuten
16. Okt 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige