Erläuterungen zu SSML
SSML (Speech Synthesis Markup Language) ist eine XML-basierte Markup-Sprache, die Annotationen von Text für Sprachsyntheseanwendungen bereitstellt. Es handelt sich hierbei um eine Empfehlung der W3C Voice-Browser Working Group, die durch die Spezifikation 'VoiceXML 2.0' als Standard-Markup-Sprache für die Sprachsynthese übernommen wurde. SSML bietet Entwicklern von Sprachanwendungen ein Standardverfahren, mit dem durch die Angabe von Aussprache, Lautstärke, Tonhöhe, Geschwindigkeit und anderen Attribute über die Markup-Sprache Aspekte des Syntheseprozesses gesteuert werden können. Sie können SSML verwenden, um die Synthese Ihres Textes mit allen unterstützten Sprachen zu steuern.
Der Dienst IBM Watson® Text to Speech basiert auf SSML Version 1.1, die am 7. September 2010 vom W3C empfohlen wurde. Weitere Informationen über die W3C SSML-Empfehlung finden Sie unter W3C Speech Synthesis Markup Language(SSML)Version 1.1.
Einführung in SSML
Die Funktionsweise von SSML ergibt sich daraus, dass einfacher Text, der an eine Sprachsynthesefunktion übergeben wird, durch eine vordefinierte Gruppe von Elementen (auch 'Tags' genannt) erweitert wird. Der einfache Eingabetext wird zunächst durch einen XML-Parser von den Markup-Spezifikationen getrennt. Anschließend werden die Spezifikationen verarbeitet und zur Erzeugung der gewünschten Effekte als Gruppe von Anweisungen in einem Format gesendet, dass für die Sprachsynthesefunktion verständlich ist. Damit der XML-Parser diese Aufgabe erfüllen kann, müssen die Markup-Formatierungen korrekt formatiert sein; beispielsweise müssen Elemente abgeschlossen und mehrere Elemente ordnungsgemäß verschachtelt sein. Eine Einführung in grundlegende XML-Konzepte finden Sie unter w3schools.com/xml/xml_whatis.asp.
Als SSLM-Element gelten alle Daten, die in einem Starttag und seinem zugehörigen Endtag enthalten sind; auch die Tags gehören zum Element. Wie aus dem folgenden Beispiel hervorgeht, kann ein Element eine Kombination aus Tags und anderen Elementen enthalten (Tags können verschachtelt werden). Elemente können zudem Attribute erfordern oder optional akzeptieren, um bestimmte Werte festzulegen.
<tag1>
<tag2 attributeName="attributeValue">
... some text ...
</tag2>
</tag1>
Ein vollständiges SSML-Dokument besteht aus einem XML-Prolog, der Informationen wie die Codierung und das Schema für die Validierung des SSML-Dokuments enthält. Auf den Prolog folgt das Stammelement <speak>
. Innerhalb der
Spanne des <speak>
geben Sie den zu synthetisierenden Text an, der durch zusätzliche Elemente ergänzt wird.
<?xml version="1.0" encoding="UTF-8"?>
<speak version="1.1">
... the body that contains text to be synthesized plus markup ...
</speak>
Der XML-Prolog ist für Text, den Sie an den Service übergeben, nicht erforderlich. Der Service unterstützt SSML-Fragmente, bei denen es sich um SSML-Elemente handelt, die nicht den vollständigen XML-Header enthalten und deren übergeordnete Elemente
nicht einschließen müssen. Die Elemente <?xml>
und <speak>
sind beispielsweise für SSML, die Sie zur Synthese senden, immer optional.
SSML-Unterstützung
Weitere Informationen zur Verwendung von SSML und verwandten Funktionen mit dem Dienst finden Sie im Folgenden:
- Der Service implementiert die meisten W3C-Spezifikationen und unterstützt SSML-Fragmente.
- Vollständige Informationen zu den Service-Levels der Unterstützung, die der Service für alle SSML-Elemente bietet, finden Sie unter SSML-Elemente.
- Beispiele für die Verwendung von SSML-Elementen mit dem
text
einer Sprachsyntheseanforderung finden Sie unter Beispiele für Eingabetext.
- Der Service unterstützt zusätzliche Synthesefunktionen für erweiterte neuronale und expressive neuronale Stimmen:
- Der Service unterstützt zusätzliche Synthesefunktionen für expressive neuronale Stimmen:
- Der Service unterstützt eine Synthesefunktion, mit der Sie steuern können, wie alphanumerische Zeichenfolgen für deutsche Stimmen ausgeschrieben werden. Weitere Informationen finden Sie unter Schreibweise von Zeichenfolgen angeben.
- Der Service unterstützt die Verwendung des SSML-Elements
<mark>
mit der Schnittstelle WebSocket zum Abrufen von Ablaufsteuerungsinformationen für Wörter der resultierenden Audiodaten. Mit der Schnittstelle WebSocket können Sie auch Informationen für alle Zeichenfolgen des Eingabetexts anfordern. Weitere Informationen finden Sie - Die Anpassungsschnittstelle des Service unterstützt die Verwendung des SSML-Elements
<phoneme>
zur Angabe der phonetischen Schreibweise, die für die Aussprache eines Worts verwendet wird. Die phonetische Schreibweise bildet den Klang eines Worts ab, die Unterteilung der Laute in Silben und die Betonung der Silben.- Informationen zur Anpassungsschnittstelle enthält der Abschnitt Wissenswertes über die Anpassung.
- Informationen zu den gültigen Symbolen, die Sie in einer IPA-Spezifikation (IPA = International Phonetic Alphabet) oder in der Spezifikation IBM Symbolic Phonetic Representation (SPR) für jede unterstützte Sprache verwenden können, finden Sie unter Informationen zu phonetischen Symbolen.
SSML-Validierung
Der Service validiert alle SSML-Elemente, die Sie in einem beliebigen Inhalt übergeben, also entweder als Eingabetext für die Synthese oder als Definition der Umsetzung eines Worts für die Anpassung. Der Service kann nicht vorab feststellen, ob der zur Synthese übergebene Text SSML-Elemente enthält. Er führt daher für jeden Eingabetext dieselbe Validierung unabhängig davon durch, ob der Text SSML enthält oder nicht.
Validierung von Elementen und Attributen
Der Service führt die folgende Validierung von SSML-Elementen und -Attributen durch:
-
Die gesamte SSML-Eingabe muss korrekt und einwandfrei formatiert sein.
-
Nicht unterstützte SSML-Elemente werden vom Service ohne Ausgabe einer entsprechenden Nachricht ignoriert. Der Service erstellt synthetisch den Text, der in den Tags eines nicht unterstützten Elements enthalten ist. Nur das Element wird ignoriert.
-
Der Service gibt einen HTTP 400-Fehlercode für ungültige SSML-Elemente oder -Attribute zurück. Bei der Angabe von SSML-Elementen, für die ein Attribut erforderlich ist:
- Sie müssen das erforderliche Attribut angeben.
- Sie müssen einen gültigen Wert für das erforderliche Attribut angeben.
- Wenn Sie weitere ungültige Attribute oder Werte einschließen, werden diese ignoriert.
Wenn die Anforderung fehlschlägt, enthält die Fehlerantwort eine beschreibende Nachricht. Angenommen, Sie geben den folgenden Eingabetext an, der das Element
<say-as>
enthält:"text": "The price is <say-as interpret-as=\"currency\">$2,500.00</say-as>."
In diesem Beispiel ist das Attribut
interpret-as
erforderlich und angegeben, aber sein Wert ist ungültig. Ein gültiger Wert für das Attribut istvxml:currency
, nichtcurrency
. Die Fehlerantwort enthält die folgende Nachricht:The connection to the Watson Text to Speech service closed with the following error: Tag <say-as> has invalid attribute interpret-as=currency
Zusammenfassung der SSML-Fehler
In Tabelle 1 werden viele allgemeine SSML-Gültigkeitsfehler beschrieben. In jedem Fall schlägt die Anforderung fehl und der Service gibt den Fehlercode 400 zurück.
Validierungsfehler | Beschreibung des Problems |
---|---|
Ungültiges SSML-Element | Sie geben beispielsweise einen Tag falsch an, lassen ein erforderliches Attribut weg oder beziehen einen Starttag, jedoch ohne zugehörigen Endtag ein. |
XML-Steuerzeichen ohne Escapezeichen | The input text itself contains a " , ' , & , < , > , or / character instead of its equivalent escape string or character encoding. Weitere Informationen
finden Sie im Abschnitt XML-Steuerzeichen mit Escapezeichen versehen. |
Ungültige Silbenbetonung | Das ph Attribut eines <phoneme> Elements für IBM SPR enthält ungültige Silbenbetonung. Weitere Informationen zur Angabe von Silben und Silbenbetonung finden Sie unter Silben angeben. |
Ungültiges phonetisches Symbol | Das ph eines <phoneme> enthält ein nicht unterstütztes IPA- oder SPR-Symbol für die angegebene Sprache. |
Keine Vokale | Das Attribut ph eines <phoneme> gibt eine Wortaussprache an, die keine Vokale enthält. |
Französische Verbindungsperson an ungültigem Ort | Im ph eines <phoneme> folgt das Verbindungszeichen nicht auf einen Konsonanten oder es steht in der Mitte der Aussprache eines Wortes. |
Das japanische Symbol : steht nicht vor einem Vokal |
Im ph eines <phoneme> kommt im Japanischen ein : nicht vor einem Vokal vor (möglicherweise mit anderen Symbolen, wie z. B. der Silbengrenze, dazwischen). |
Ungültige Verwendung des SSML-Elements <prosody> |
Die Attribute contour , duration , range und volume des Elements <prosody> können mit keiner Stimme verwendet werden. |
Ungültige Verwendung des SSML-Elements <express-as> |
Sie können das Element <express-as> nur mit expressiven neuronalen Stimmen verwenden. |