
Share:
Lorna ist eine Software-Ingenieurin mit einer unheilbaren Blogging-Sucht. Sie versucht, Worte und Code gleichermaßen zu bändigen.
Lesen von Weihnachtsgedichten mit Text-To-Speech und SSML
Lesedauer: 1 Minute
Hier bei Nexmo verwenden wir Text-zu-Sprache in unseren Telefonie-Anwendungen, aber wussten Sie, dass Ihr Text mehr kann als nur sprechen? Unser Voice API unterstützt SSML (Sprachsynthese-Auszeichnungssprache) die es Ihnen ermöglicht, Ihren Text-to-Speech-Ausgaben einen gewissen Ausdruck hinzuzufügen.
Da Weihnachten ist, dachte ich, ich stelle mich der Herausforderung eines Weihnachtsgedichts! Text-to-Speech mit einfachen Satzzeichen wie Kommas und Punkten funktioniert eigentlich ganz gut, so dass man schon beim ersten Versuch erkennen konnte, dass es ein Metrum haben sollte.
Der kleine Jack Horner saß in der Ecke und aß vom Weihnachtskuchen: Er steckte seinen Daumen hinein, zog eine Pflaume heraus und sagte: "Was bin ich doch für ein guter Junge!"
Wir können dies verbessern, indem wir die Wörter markieren, die betont werden sollen. Ich habe <prosody> Tags verwendet, um den starken Wörtern im Reim mehr Volumen zu geben und sie zu verlangsamen. Zum Beispiel sind "Horner", "Ecke", "Pflaume" und "Daumen" alle mit <prosody rate="x-slow"> gekennzeichnet, um den Sprachrhythmus zu unterstützen.
Das Text-to-Speech-System kannte das Wort "Horner" nicht, also habe ich ein <phoneme> Tag verwendet, um das Wort phonetisch so zu buchstabieren, wie es ausgesprochen werden sollte (so reimt es sich wenigstens auf "Ecke" in der nächsten Zeile, für mich klingt es immer noch etwas seltsam!). Dies ist ein sehr nützlicher Trick bei der Erstellung von Text-to-Speech-Inhalten, vor allem bei Eigennamen, die dem Parser oft nicht geläufig sind. Sie können ihn auch für alle anderen Wörter verwenden, deren Aussprache nicht so ist, wie Sie es erwarten.
Und schließlich habe ich zum Spaß das Wort "gut" in der letzten Zeile herausgeschnitten, indem ich das <say-as> Tag verwendet und das Wort in ein Schimpfwort umgewandelt. Dieses Tag kann sehr nützlich sein, wenn Ihre Anwendung vom Benutzer gelieferte Inhalte mit unbekanntem Inhalt sprechen muss!
Hier ist die SSML, die ich erstellt habe:
<speak>
<lang xml:lang="en-GB">
Little Jack <prosody rate="x-slow"><phoneme alphabet="ipa" ph="ˈhɔːnə">Horner</phoneme></prosody>,
Sat in the<prosody rate="x-slow">corner</prosody>,
Eating of <prosody volume="x-loud">Christmas</prosody> <prosody rate="x-slow">pie:</prosody>
He put in his <prosody rate="x-slow">thumb</prosody>,
And pulled out a <prosody rate="x-slow">plum</prosody>,
And said, “What a <say-as interpret-as="expletive">good</say-as> boy am <prosody rate="x-slow">I</prosody>!”
</lang>
</speak>Durch die Aufnahme dieser XML als text Feld in der talk Aktion meines NCCO und das Hinzufügen einer record Aktion hinzufügte, konnte ich die Poesie des Roboters erfassen:
https://soundcloud.com/user-872225766-984610678/conference-31696a4f-983f-40ea-b81a-ab942fc33782
Sie könnten sich überlegen, ob Sie Ihre gesprochene Interaktion mit Ihren Benutzern durch SSML noch ausdrucksstärker machen wollen - und Gedichte sind eine großartige Möglichkeit zum Üben. Lassen Sie uns wissen, wenn Sie dieses Weihnachten etwas Poetisches bauen!