Feedback

Text-to-Speech (Sprachausgabe)

Sprache: C#

Beschreibt wie man Text gesprochen ausgeben kann mithilfe von System.Speech.Synthesis Dieser Namespace muss vorher in den Verweisen inzugefügt werden In meinem nächsten Post zeige ich dann den umgekehrten weg( wie man sprache erkennt)
using System.Speech.Synthesis;

public class Sprachausgabe{
   private static SpeechSynthesizer speaker;

   public static void Main(String[] args){
      speaker = new SpeechSynthesizer();

      //In dem Fall unnötig, aber falls zB vorher OutputToWav eingestellt war
      speaker.SetOutputToDefaultAudioDevice();
      //Geschwindigkeit (-10 - 10)
      speaker.Rate = 1;
      //Lautstärke (0-100)
      speaker.Volume = 100;
      //Such passende Stimme zu angegebenen Argumenten
      speaker.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult);
      //Text wird ausgegeben (abbrechen mit speaker.CancelAsync())
      speaker.SpeakAsync("Hello World"); 
   }

   //zusätzliche Methode, kann manchmal nützlich sein
   private static List<VoiceInfo> GetInstalledVoices() {
      var listOfVoiceInfo = from voice
                            in  speaker.GetInstalledVoices()
                            select voice.VoiceInfo;

      return listOfVoiceInfo.ToList<VoiceInfo>();
   }
}
using System.Speech.Synthesis;

public class Sprachausgabe{
   private static SpeechSynthesizer speaker;

   public static void Main(String[] args){
      speaker = new SpeechSynthesizer();

      //In dem Fall unnötig, aber falls zB vorher OutputToWav eingestellt war
      speaker.SetOutputToDefaultAudioDevice();
      //Geschwindigkeit (-10 - 10)
      speaker.Rate = 1;
      //Lautstärke (0-100)
      speaker.Volume = 100;
      //Such passende Stimme zu angegebenen Argumenten
      speaker.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult);
      //Text wird ausgegeben (abbrechen mit speaker.CancelAsync())
      speaker.SpeakAsync("Hello World"); 
   }

   //zusätzliche Methode, kann manchmal nützlich sein
   private static List<VoiceInfo> GetInstalledVoices() {
      var listOfVoiceInfo = from voice
                            in  speaker.GetInstalledVoices()
                            select voice.VoiceInfo;

      return listOfVoiceInfo.ToList<VoiceInfo>();
   }
}

3 Kommentare

  1. Wow, super. Schön das mal gehört/gesehen/gelesen zu haben! 🙂

    Eine Frage: Wie sieht es mit deutscher Aussprache aus?

    Habe es schon so probiert, gab aber keine Änderung:

    speaker.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult, 0, System.Globalization.CultureInfo.CreateSpecificCulture(„de-DE“));

  2. ja, leider ist es so das zumindest auf der deutschsprachigen version nur microsoft anna oben ist, soweit ich weiß, gibt es noch eine chinesisch bzw japanische stimme, iwas halt aus der gegend dort. ich hoffe das mit der nächsten version von windoes neue sprachen dazukommen, wahrscheinlich kann man sich jedoch die alten sprachen ( also microsoft bob, usw ) von microsoft herunterladen

  3. Deutschsprachige sind alle unter Lizenz soweit ich das weiss.
    LH Anna ist im uralt Setup vom Microsoft EBook Reader
    Qualitativ ist aber „ScanSoft Steffi_Dri40_16kHz“ besser als „LH Anna“
    Diese kann dann mit speaker.SelectVoice(voice.Name) gesetzt werden.