Verwenden von Sprachsynthese-Markupsprache

Abgeschlossen

Das Azure Speech SDK ermöglicht es Ihnen, reinen Text zur Sprachsynthese zu übermitteln; der Dienst unterstützt jedoch auch eine XML-basierte Syntax zur Beschreibung der Merkmale der Sprache, die Sie generieren möchten. Diese Syntax der Speech Synthesis Markup Language (SSML) bietet eine bessere Kontrolle darüber, wie die Sprachausgabe klingt, sodass Sie:

  • Geben Sie einen Sprechstil an, z. B. "aufgeregt" oder "fröhlich", wenn Sie eine neurale Stimme verwenden.
  • Einfügen von Pausen oder Stillen
  • Geben Sie Phoneme (phonetische Aussprachen) an, um z. B. den Text "SQL" als "sequel" auszusprechen.
  • Passen Sie die Prosodie der Stimme an, was sich auf die Tonhöhe, das Timbre und die Sprachgeschwindigkeit auswirkt.
  • Verwenden Sie allgemeine "Say-as"-Regeln, um beispielsweise anzugeben, dass eine bestimmte Zeichenfolge als Datum, Uhrzeit, Telefonnummer oder andere Form ausgedrückt werden soll.
  • Fügen Sie aufgezeichnete Sprach- oder Audiodaten ein, um z. B. eine standard aufgezeichnete Nachricht einzuschließen oder Hintergrundgeräusche zu simulieren.

Betrachten Sie beispielsweise die folgenden SSML:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" 
                     xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US"> 
    <voice name="en-US-AriaNeural"> 
        <mstts:express-as style="cheerful"> 
          I say tomato 
        </mstts:express-as> 
    </voice> 
    <voice name="en-US-GuyNeural"> 
        I say <phoneme alphabet="sapi" ph="t ao m ae t ow"> tomato </phoneme>. 
        <break strength="weak"/>Lets call the whole thing off! 
    </voice> 
</speak>

Dieser SSML gibt ein gesprochenes Dialogfeld zwischen zwei verschiedenen neuralen Stimmen an, wie folgt:

  • Ariana (fröhlich): "Ich sage Tomato:
  • Kerl: "I say tomato (pronounced tom-ah-toe) ... Let's call the whole thing off!“

Um eine SSML-Beschreibung an den Sprachdienst zu übermitteln, können Sie wie folgt eine geeignete Methode eines SpeechSynthesizer-Objekts verwenden:

speech_synthesizer.speak_ssml('<speak>...');

Weitere Informationen zu SSML finden Sie in der Azure Speech SDK-Dokumentation.