注目キーワード
  1. 3CX
  2. IP電話
  3. VoIP
  4. クラウドPBX
SIP対応IP電話機の最適解、Fanvil製品を国内正規取扱中|CCアーキテクトが運営する3CXクラウドサービスは顧客満足度99%以上|最新のユニファイドコミュニケーションの技術事情はCCアーキテクト社員が本ブログで随時更新中

Genesys Cloud ArchitectフローでのSSMLの利用

はじめに

Genesys Cloudでは標準の音声合成機能(TTS)に加えてEnhanced TTSを利用してより高性能なTTSが選択が可能できます。Enhanced TTSに対してシンプルに文章の指定を行っても十分な品質の音声読み上げを行う事が可能ですが、語尾や専門用語等に対して細かな抑揚、読み上げの速度等に満足がいかない場合も多々発生します。この場合、SSMLを使用して再生音声のチューニング行う事で、より自然な音声読み上げを行う事が可能となります。

SSMLとは

SSML(音声合成マークアップ言語)は、簡単に言うと「TTSに喋り方の指示を出すためのタグ」のことです。

HTMLみたいにテキストをタグで囲むことで、「ここはもっとゆっくり」「ここは大きな声で」「ここは1秒休止して」といった細かい調整ができます。ただ読み上げるだけだと機械的になりがちですが、SSMLを使えば、より人間らしく、感情がこもった自然な喋りに近づけることができます。(頑張れば)

ArchitectフローでのSSMLを使ってみよう

制約事項です。

いきなりですが制約事項です。2026年4月末現在、SSMLを利用の可能なフローはボットフロー、音声アンケート フロー※のみです。インバウンドコールフローでは直接、SSMLを利用できません。
インバウンドコールフローからボットフロー、共通モジュール フロー を呼び出しボットフロー側で行うTTS再生の中でSSMLを指定を行う事となります。

※後述するToCommunicationSsml関数のドキュメントには上記に加えて共通モジュール フローもSSML使用可との記載がありましたが筆者は共通モジュールにてSSMLを指定する方法を見つける事が出来ませんでした。

SSML指定の実際

今回の例としてTTSはAmazon Pollyを使用し再生速度少し遅くする(標準の再生速度の95%)を指定する場合を説明します。
再生速度の指定するSSMLとしては以下の定義になります。

上記のSSMLはAmazon PollyのAWS マネジメントコンソールからは再生可能ですがGenesysCloudにはそのままでは使用できません。GenesysCloudで指定するためにはArchitectのボットフローまたは音声アンケート フローにて「コミュニケーション」ボックスを追加して式として下記を指定します。

以下、Architectフローでの操作イメージとなります。

「コミュニケーション」ボックスを追加します
コミュニケーションシーケンスビルダを開きます
式の詳細編集ダイアログを開いてToCommunicationSsml関数を入力します

GenesysCloudでSSMLを指定するにはToCommunicationSsml関数を使用します。ToCommunicationSsmlを使用する事でタグ<speak>は省略します。また再生速度の指定をパーセント指定から小数点指定に変更しています。これはAmazon Pollyのドキュメント上、再生速度の指定はパーセントにて指定を行う旨、記載がありましたが実際にGenesysCloudで指定を行うと正しく動きませんでした。このため試行錯誤を行った結果、小数点にて再生速度を指定する事で希望の動作を得る事が出来ました。試行錯誤するより動かない設定情報については素直に都度サポートに問い合わせを行った方が良いかと思います。

実務上は文字列のベタ書きをせず変数等を使用する事になりますが、変数や文字列操作に関してはSSML特有の操作はありません。

今回はタグ<prosody>での再生速度指定の例となりますが、その他使用可能なSSMLのタグは下記、AWS Amazon Pollyのドキュメントを参照して下さい。
https://docs.aws.amazon.com/ja_jp/polly/latest/dg/ssml.html

また使用するTTSによてSSMLのサポート状況が異なるので使用時は各TTSのドキュメントを確認して下さい。

SSMLの罠

SSMLはXMLを元にしたタグを使用しています。このためタグを構成している文字(引用符 (二重引用符) ”、アンパサンド &、アポストロフィまたは一重引用符 ’、小なり記号 <、大なり記号 >)は再生する文字列に含めることは出来ません。指定するとSSMLフィーマットが壊れてしまうのでタグ自体が読み上げ上げられてしまいます。下表を参考に代替文字列を指定するか、いっそのことカタカナ読みを指定してしまった方が良いかもしれません。

おわりに

SSMLの定義・機能は非常に強力ですがTTSとの相性もありタグを変更しながら実際に音声を聞いてチューニングを行う事が必要です。ですがチューニングにいたるまでの環境構築に関する情報はまとまっておらず各種ドキュメントをつき合わせながら作業を進めていくのが実情となっています。この辺りは試行錯誤がつきものですが、この文章が皆様の一助となれば幸いです。

Genesys Cloudの設計・設定・運用でお困りの点があれば、お気軽にお問い合わせください。

ホームページ:https://cc-arc.com/

メール:info@cc-arc.co.jp