Gesprochenen Text anpassen
Übersicht
Sie können steuern, wie die Vonage Voice API maschinell erzeugten Text für Ihre Benutzer wiedergibt, indem Sie eine Teilmenge der Tags verwenden, die in der Datei Speech Synthesis Markup Language (SSML) Spezifikation. Dieses XML-basierte Markup ermöglicht es Ihnen, mehrere Sprachen zu mischen, Aussprachehinweise für bestimmte Wörter und Numbers zu geben und die Geschwindigkeit, Lautstärke und Tonhöhe des synthetisierten Textes zu steuern.
In einem NCCO talk Aktion können Sie Folgendes senden SSML-Tags als
Teil der Zeichenkette. Aber zuerst müssen Sie die gesamte Zeichenkette in <speak></speak> Tags, um Vonage mitzuteilen, dass die Zeichenfolge SSML enthält. Sie können für Tag-Attributwerte entweder einfache Anführungszeichen oder maskierte doppelte Anführungszeichen verwenden.
Hier ist ein Beispiel für SSML in der text Eigenschaft eines NCCO talk Aktion:
[
{
"action": "talk",
"text": "<speak><p>Hello.</p><p>How are you?</p></speak>"
}
]
SSML-Tags
- Pausen: Hinzufügen von Pausen zum gesprochenen Text
- Hervorhebung von: Hervorhebungen im Text hinzufügen oder entfernen
- Sprache: Geben Sie für bestimmte Wörter eine andere Sprache an
- Phoneme: Buchstabieren Sie den Text mit Hilfe der phonetisches Alphabet
- Prosodie: Einstellen der Tonhöhe, Geschwindigkeit und Lautstärke des gesprochenen Textes
- Sagen Sie als: Aussprachehinweise für Wörter, Numbers und Daten
- Sätze und Absätze: Zwingen Sie die API, Sätze und Absätze zu erkennen, wenn Sie Ihren Text sprechen
- Substitution: Ersetzen Sie einen bestimmten Text durch eine Aussprache Ihrer Wahl
Pausen
Die break Tag ermöglicht es Ihnen, Pausen in den Text einzufügen. Die Dauer der
Pause kann entweder mit einem strength Dauer oder als
time Sekunden oder Millisekunden.
<speak>My name is <break time='1s' />Slim Shady.</speak>
Gültig strength Werte umfassen:
noneoderx-weak(wodurch eine Pause, die sonst nach einem Punkt entstehen könnte, entfernt wird)weakodermedium(entspricht einem Komma)strongoderx-strong(entspricht einem Absatzumbruch)
<speak>
To be <break strength='weak' />
or not to be <break strength='weak' />
that is the question.
</speak>
Hervorhebung von
Um Wörter hervorzuheben, verwenden Sie die emphasis Tag. Die Betonung von Wörtern verändert die Sprechgeschwindigkeit und Lautstärke. Mit mehr Betonung wird der Text lauter und langsamer gesprochen. Weniger Betonung macht ihn leiser und schneller.
Anmerkung: Die emphasis Tag ist für Premium-TTS-Stimmen nicht verfügbar.
Um den Grad der Betonung festzulegen, verwenden Sie die level Attribut.
Gültig level Werte umfassen:
strong: Erhöht die Lautstärke und verlangsamt die Sprechgeschwindigkeit, so dass die Sprache lauter und langsamer wird.moderate: Erhöht die Lautstärke und verlangsamt die Sprechgeschwindigkeit, aber weniger als stark.moderateist die Standardeinstellung.reduced: Verringert die Lautstärke und beschleunigt die Sprechgeschwindigkeit. Die Sprache wird leiser und schneller.
<speak>
<emphasis level="moderate">This is an important announcement</emphasis>
</speak>
Sprache
Die lang Tag können Sie eine andere Sprache für ein bestimmtes Wort, eine Phrase oder einen Satz angeben.
Dies kann für eine bessere Aussprache von Fremdwörtern nützlich sein.
Das Sprach-Tag sollte sowohl das Sprach-Tag als auch den
Ländercode (z. B. pt-BR für brasilianisches Portugiesisch, en-GB für
Britisches Englisch), auch für Sprachen ohne Ländervarianten, bei denen
ein Ländercode ansonsten überflüssig wäre (z. B. it-IT für
Italienisch).
<speak><lang xml:lang='it-IT'>Buongiorno</lang></speak>
Bitte beachten, lang ändert die Aussprache, nicht aber die "Muttersprache" der Stimme,
zum Beispiel, wenn die Sprache in talk Aktion/Abfrage wird auf en-USund SSML lang Tag im Text auf fr-FR,
wird der Satz in Französisch mit amerikanischem Akzent gesprochen.
Um die Sprache für die gesamte Nachricht zu ändern, verwenden Sie die language oder der Parameter talk Aktion/Auftrag stattdessen.
Nicht alle Sprachstile unterstützen lang Tag.
Phoneme
Die phoneme Tag ermöglicht es Ihnen, eine Darstellung des Internationalen Phonetischen
Alphabet (IPA) eines Wortes senden. Um dies zu verwenden, müssen Sie
sowohl eine alphabet (entweder ipa oder
x-sampa) und die ph
Attribut, das die phonetischen Symbole enthält.
<speak>
<phoneme alphabet='ipa' ph='təˈmætoː'>Tomato</phoneme> or
<phoneme alphabet='ipa' ph='təˈmeɪtoʊ'>tomato</phoneme>.
Two nations separated by a common language.
</speak>
Prosodie
Die prosody Tag können Sie die Tonhöhe, die Geschwindigkeit und die Lautstärke des
Textes.
Die
volumekann auf die folgenden Werte gesetzt werden:default,silent,x-soft,soft,medium,loudundx-loud. Sie können auch einen relativen Dezibelwert in der Form+ndBoder-ndBwobeinist ein ganzzahliger Wert.Die
rateändert die Geschwindigkeit der Sprache. Akzeptable Werte umfassen:x-slow,slow,medium,fastundx-fast.Die
pitchAttribut ändert die Tonhöhe der Stimme. Sie können die entweder mit vordefinierten Wertelabels oder numerisch angeben. Die Wert Bezeichnungen sind:default,x-low,low,medium,highundx-high. Das Format für die Angabe einer numerischen Tonhöhenänderung ist:+n%und-n%.
Hinweis: Bei der Verwendung von Premium-TTS-Stimmen ist die pitch Attribut wird nicht unterstützt.
Das folgende Beispiel zeigt, wie Sie Lautstärke, Geschwindigkeit und Tonhöhe ändern können.
<speak>
I am <prosody volume='loud'>loud and proud</prosody>,
<prosody rate='fast'>quick as a cricket</prosody>
and can <prosody pitch='x-low'>change my pitch</prosody>.
</speak>
Sagen Sie als
Die say-as Tag ermöglicht es Ihnen, Anweisungen zu geben, wie bestimmte Wörter und Numbers gesprochen werden. Viele dieser Merkmale werden von der TTS-Engine automatisch in der Sprache erkannt, aber die say-as können Sie diese gezielt markieren.
Die say-as Tag hat ein erforderliches Attribut: interpret-as. Dieses Attribut muss einen der folgenden Werte enthalten:
Wert der interpret-as | Wirkung auf gesprochenen Text |
|---|---|
character | Buchstabiert jeden Buchstaben, zum Beispiel: I-A-T-A. |
cardinal | Spricht den Wert wie eine Zahl aus. Zum Beispiel würde "974" als "neunhundertvierundsiebzig" ausgesprochen. |
ordinal | Spricht die Zahl wie eine Ordnungszahl aus. Zum Beispiel würde "1" als "erste" und "33" als "dreiunddreißigste" ausgesprochen werden. |
digits | Liest die angegebenen Numbers als Ziffern aus. Zum Beispiel würde "747" als "sieben vier sieben" und nicht als "siebenhundertsiebenundvierzig" ausgesprochen werden. |
fraction | Liest die Numbers als Bruch aus. Zum Beispiel würde "1/3" als "ein Drittel" und "2 4/10" als "zwei und vier Zehntel" ausgesprochen werden. |
unit | Liest die angegebene Zahl in einer Einheit aus. Der Wert muss eine Zahl sein, gefolgt von einer Maßeinheit, ohne Leerzeichen zwischen den beiden. Zum Beispiel: "1m". |
date | Geben Sie an, wie die Daten ausgesprochen werden sollen. Siehe den Abschnitt unten über Datumsformatierung. |
time | Spricht Zeitdauern in Minuten und Sekunden aus. Zum Beispiel: 1'30" wird als "eine Minute und dreißig Sekunden" gelesen. |
expletive | Ersetzt den Inhalt durch einen "Bleep", um Schimpfwörter zu zensieren. Sie können dies verwenden, um gefilterte Schimpfwörter automatisch zu ersetzen. |
telephone | Liest eine Telefonnummer mit entsprechenden Pausen vor. |
address | Liest eine Straßenadresse mit entsprechenden Pausen vor. |
Hinweis: Nicht alle Sprachstile unterstützen address Option.
Anmerkung: Bei der Verwendung von Premium-TTS-Stimmen wird die character Attribut möglicherweise nicht wie vorgesehen funktioniert und sollte vermieden werden.
Ein Beispiel:
<speak>
Your number is <say-as interpret-as='cardinal'>10</say-as>.
You are <say-as interpret-as='ordinal'>10</say-as> in line.
The digits for ten are <say-as interpret-as='digits'>10</say-as>.
</speak>
Formatierung des Datums
Datumsangaben können auf die folgenden Arten formatiert werden:
format | Wie das Datum ausgelesen wird |
|---|---|
mdy | Monat-Datum-Jahr (z. B. "3/10/2019") |
dmy | Tag-Monat-Jahr (z. B. "10/3/2019") |
ymd | Jahr-Monat-Tag (z. B. "2019/3/10") |
md | Monat-Tag (z.B. "3/10") |
dm | Tag-Monat (z. B. "10/3") |
ym | Jahr-Monat (z. B. "2019/3") |
my | Monat-Jahr (z. B. "3/2019") |
d | Tag (z. B. "10") |
m | Monat (z. B. "3") |
y | Jahr (z. B. "2019") |
yyyymmdd | Jahr-Monat-Tag, mit optionaler ? um nicht spezifizierte Komponenten zu ersetzen. Zum Beispiel: 20190310 oder ????0310. |
Das folgende Beispiel wird in "Heute ist der 10. März" umgewandelt.
<speak>
Today is <say-as interpret-as="date" format="dm">10/3</say-as>
</speak>
Sätze und Absätze
Sätze
Sie können Sätze in die s Tag. Dies ist gleichbedeutend mit dem Setzen eines
Punkt am Ende des Satzes zu setzen.
<speak>
<s>Thank you Mario</s>
<s>But our princess is in another castle</s>
</speak>
Paragraphen
Die p Tag ermöglicht es Ihnen, Absätze in Ihrer Rede anzugeben.
<speak>
<p>Hello.</p>
<p>How are you?</p>
</speak>
Substitution
Die sub Tag ermöglicht es Ihnen, eine Ersatzaussprache anzugeben. Der Inhalt des Tags alias Attribut wird stattdessen gelesen.
<speak>
Welcome to the <sub alias="United States">US</sub>.
</speak>