Sprachsynthese

Abgeschlossen

Hinweis

Weitere Details finden Sie auf der Registerkarte "Text und Bilder ".

Die Sprachsynthese, die häufig als Text-zu-Sprache (TTS) bezeichnet wird, befasst sich mit der Vokalisierung von Daten, in der Regel durch konvertieren von Text in Sprache. Sprachsynthese generiert in der Regel hörbare Sprache aus einer textbasierten Quelle.

Eine Text-zu-Sprache-Lösung erfordert in der Regel die folgenden Informationen:

  • Der Text, der gesprochen werden soll
  • Die Stimme, die verwendet werden soll, um die Rede zu vokalisieren

Um sprache zu synthetisieren, tokenisiert das System den Text in der Regel, um ihn in einzelne Wörter aufzuteilen, und weist jedem Wort phonetische Sounds zu. Anschließend wird die phonetische Transkription in prosodische Einheiten (z. B. Ausdrücke, Klauseln oder Sätze) umgebrochen. Das System erstellt Phoneme aus den prosodischen Einheiten. Diese Phoneme werden dann als Audio synthetisiert und können einer bestimmten Stimme, Sprachfrequenz, Tonhöhe und Lautstärke zugewiesen werden.

Sie können die Ausgabe der Sprachsynthese für viele Zwecke verwenden, z. B.:

  • Generieren von gesprochenen Antworten auf Benutzereingaben.
  • Lautes Lesen von Nachrichten.
  • Sendeankündigungen.

Azure Speech – Text-zu-Sprache

Azure Speech enthält eine Text-zu-Sprache-API , die wir im Microsoft Foundry-Portal erkunden können.

Mit der Text-zu-Sprache-API können Sie Texteingaben in eine hörbare Sprache konvertieren, die entweder direkt über einen Computerlautsprecher wiedergegeben oder in eine Audiodatei geschrieben werden kann. Der Dienst enthält mehrere vordefinierte Stimmen mit Unterstützung für mehrere Sprachen und regionale Aussprache, einschließlich neuraler Stimmen, die neurale Netzwerke verwenden. Neurale Stimmen können häufige Einschränkungen bei der Sprachsynthese überwinden, z. B. Probleme mit Intonation, was zu einer natürlicher klingenden Stimme führt. Sie können auch benutzerdefinierte Stimmen entwickeln und diese mit der Text-to-Speech-API einsetzen.

Im neuen Microsoft Foundry-Portal können wir die Text-zu-Sprache-Funktionen von Azure Speech im Gießerei-Playground erkunden. Im Azure Speech - Text to Speech Foundry-Playground können Sie eine synthetische Stimme aus der verfügbaren Auswahl auswählen. Sie können auch einige Parameter anpassen, um die Übermittlung der Audiodaten zu steuern, z. B. Geschwindigkeit und Tonhöhe. Die Audioausgabe wird aus dem synthetisierten Text generiert.

Screenshot der Text-zu-Sprache im Foundry-Playground.

Verwenden des Azure Text-zu-Sprache-SDKs

Sie können Azure Speech verwenden, um eine Anwendung zu entwickeln, die Sprachsynthese verwendet. Mit dem Azure Text-to-Speech SDK können Anwendungen geschriebenen Text in gesprochene Audiodaten in natürlicher Sprache konvertieren.

Mit dem SDK kann Ihre Anwendung:

  • Senden von Text an Azure Speech
  • Generieren von gesprochenen Audiodaten mit neuralen Stimmen
  • Wiedergeben oder Speichern des Audiosignals in Lautsprechern oder einer Audiodatei

Das SDK behandelt Authentifizierung, Netzwerkkommunikation, Audioformatierung und Wiedergabe, sodass Sie sich auf die Benutzeroberfläche Ihrer App konzentrieren können.

Entwickeln einer Anwendung

Das Text-zu-Sprache-SDK wird in der Regel in:

  • Clientanwendungen , um Text in Sprache zu konvertieren und sofort wiederzugeben (z. B. eine Desktop- oder mobile App)
  • Back-End-Dienste: So generieren Sie Audiodateien für die spätere Wiedergabe

Nachdem Sie das Python SDK installiert haben, können Sie Ihr Programm erstellen und ausführen. Berücksichtigen Sie den folgenden Python-Code. Wenn Sie es ausführen:

  1. Ihre App initialisiert das Speech SDK: Stellt einen Endpunkt und eine Authentifizierung bereit (Schlüssel oder Microsoft Entra ID)
  2. Text wird bereitgestellt
  3. Text wird an Azure Speech gesendet: Das SDK verarbeitet die Anforderung und Formatierung
  4. Sprachsynthese läuft in der Cloud: Neurale Modelle generieren Audio
  5. Audio wird zurückgegeben: Ihre App spielt, streamt oder speichert die Audiodaten vorübergehend.
import os
import azure.cognitiveservices.speech as speechsdk

# This example requires environment variables named "FOUNDRY_KEY" and "ENDPOINT"
speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('FOUNDRY_KEY'), endpoint=os.environ.get('ENDPOINT'))
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)

# The neural multilingual voice can speak different languages based on the input text.
speech_config.speech_synthesis_voice_name='en-US-Ava:DragonHDLatestNeural'

speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)

# Get text from the console and synthesize to the default speaker.
print("Enter some text that you want to speak >")
text = input()

speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()

if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
    print("Speech synthesized for text [{}]".format(text))
elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
    cancellation_details = speech_synthesis_result.cancellation_details
    print("Speech synthesis canceled: {}".format(cancellation_details.reason))
    if cancellation_details.reason == speechsdk.CancellationReason.Error:
        if cancellation_details.error_details:
            print("Error details: {}".format(cancellation_details.error_details))
            print("Did you set the speech resource key and endpoint values?")

Beispiel für Client-App

Angenommen, Sie erstellen eine App, die Textnachrichten vokalisiert. Im Code-Editor haben Sie eine Textdatei und eine Python-Datei, die Anwendungscode enthält.

Screenshot der Textdatei in Visual Studio-Code.

Stellen Sie zunächst eine Verbindung mit dem Endpunkt für Azure Speech her. Erstellen Sie dann ein SpeechSynthesizer Objekt. Anschließend verarbeitet die Anwendung die Textdatei, die die Nachricht enthält, und verwendet das SpeechSynthesizer Objekt, um die gesprochenen Audiodaten zu generieren.

Screenshot des Python-Codes für Text-zu-Sprache.

Wenn Sie die Anwendung ausführen, nimmt sie den Text und gibt eine Audioausgabe der Nachricht zurück.

Screenshot der Ergebnisse eines Text-zu-Sprache-Python-Skripts.

Erfahren Sie als Nächstes, wie Sie Sprach-zu-Sprache-Funktionen in eine Anwendung mit Azure Speech – Voice Live integrieren.