SSML標準タグの定義: Speech Synthesis Markup Language (SSML) Version 1.1
標準タグについてのサポートは、各ベンダーに依存します。Google、MicrosoftそれぞれのSSMLタグ説明サイトをご覧ください。
- Microsoft Azure SSML: Speech Synthesis Markup Language (SSML) overview - Speech service - Azure AI services | Microsoft Learn
Microsoftにおいては、以下ページからペイロードを作成することができます。
https://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech/#features
このページにある通り、現在日本語においては男声、女声が一つずつ選べ、会話スタイルはGeneral、Chat、CustomerService、Cheerfulのみが選べます。ちなみにEnglish (United States)においてはさらに多くのStyleがサポートされています。
このページで作成したペイロードが無事に再生されれば、それをSmartAssistで読み上げるメッセージノードのPlain Textに貼り付けると、無事再生が行われます。ボットビルダーにて、メッセージノードの詳細画面にてSmartAssist Gatewayを追加し、そちらに作成します。
なお、この場合はSmartAssist側のTTSはAzureを選択している必要があります。
- Google:Speech Synthesis Markup Language (SSML) | Cloud Text-to-Speech API | Google Cloud
日本語ページがありますので参照してください。SmartAssist側への設定は#1と同様ですが、TTSとしてGoogleを選択してください。
注意事項:このページのスニペットには…などと記載がありますが、ヘッダーについては以下のように記載する必要があります。
<speak xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xmlns:emo="http://www.w3.org/2009/10/emotionml" version="1.0" xml:lang="en-US">
<voice name="en-US-JennyNeural">
<prosody pitch="-1%" rate ="0.99" contour= "(80%,+20%)">Hello, I work at <phoneme alphabet="ipa" ph="kor"> Kore </phoneme> AI </prosody>
</voice>
</speak>
- Tips
- 要件に依存するが、AzureによるSSML制御はエミュレーターが存在するため、先にスニペットを作成した上でKore側へ実装すると効率が良い。また制御内容も直感的であるため、Azureからトライすると良いと考える。
- SSMLによる制御の前に、数字をひらがなにする、句読点をつけるなどで抑揚やアクセントなど、音声合成のアウトプットが変わるため、そちらからトライするほうが望ましい。SSMLにおいては、間を数秒置く、などのときなど利用を限定するのも方針として良いかもしれない