Verwenden von Sprachsynthese-Markupsprache

Abgeschlossen

Mit dem Azure KI Speech-SDK können Sie zwar Nur-Text zur Sprachsynthese übermitteln (z. B. mit der SpeakTextAsync()-Methode), aber der Dienst unterstützt auch eine XML-basierte Syntax zur Beschreibung der Merkmale der zu generierenden Sprache. Diese SSML-Syntax (Speech Synthesis Markup Language) bietet mehr Kontrolle darüber, wie die gesprochene Ausgabe klingt, und ermöglicht Ihnen Folgendes:

  • Angeben eines Sprechstils, z. B. „aufgeregt“ oder „fröhlich“ bei Verwendung einer neuronalen Stimme.
  • Einfügen von Pausen oder Stille.
  • Angeben von Phonemen (phonetische Aussprache) an, z. B. um den Text „SQL“ als „Sequel“ auszusprechen.
  • Anpassen der Prosodie der Stimme (Tonhöhe, Timbre und Sprechgeschwindigkeit).
  • Verwenden von allgemeinen „Sagen-als“-Regeln, um z. B. festzulegen, dass eine bestimmte Zeichenfolge als Datum, Uhrzeit, Telefonnummer oder in einer anderen Form ausgedrückt werden soll.
  • Einfügen von aufgezeichneter Sprache oder Audioinhalten, z. B. um eine aufgezeichnete Standardmeldung einzubinden oder Hintergrundgeräusche zu simulieren.

Betrachten Sie z. B. die folgende SSML-Anweisung:

<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>

Diese SSML-Anweisung gibt einen gesprochenen Dialog zwischen zwei verschiedenen neuronalen Stimmen an, beispielsweise:

  • Ariana (fröhlich): „I say tomato:
  • Guy: „I say tomato (ausgesprochen tom-ah-toe) ... Let's call the whole thing off!“

Um eine SSML-Beschreibung an den Sprachdienst zu übermitteln, können Sie die SpeakSsmlAsync()-Methode wie folgt verwenden:

speechSynthesizer.SpeakSsmlAsync(ssml_string);

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