提供: Bright Pattern Documentation
移動先: 案内検索
• English

TTSの発話品質の向上

はじめに

音声合成マークアップ言語 (SSML)は、音声合成のさまざまな側面をコントロール・調整するために使用される、標準化されたXMLベースのマークアップ言語です。 コンタクトセンターの環境において、SSMLを活用することで、より自然で、聞き手を引きつけ、プロフェッショナルな印象を与える自動音声体験を作成できます。SSMLタグを使用することで、発音、話し方のテンポ、ピッチ、音量などの属性をコントロールし、日付、通貨、参照番号などの動的な情報を、顧客に対して明確かつ正確に読み上げることができます。

前提条件

シナリオでSSMLを使用するには、Google CloudまたはIBM Watsonの テキスト読み上げ(TTS)連携アカウント が設定されている必要があります。

SSMLは標準化されたマークアップ言語ですが、ご利用のTTSプロバイダーが提供するSSMLのドキュメントを確認することをお勧めします:


音声シナリオにおける SSML の例

顧客が今後のサービス予約を確認するために電話をかけてくるシナリオを想定します。予約日とコールバック連絡先の電話番号が、自然かつ明確に伝えられるようにしたいとします。

シナリオの作成

まず、新規作成 音声シナリオ を作成するか、既存のシナリオを開きます。本番環境では、通常、使用します。 Fetch URLブロック, 「DB Execute」ブロック、あるいは CRM連携 を使用して、発信元の今後のアポイントメントの詳細を取得します。

以下の例では、2つの 「変数の設定」ブロックを使用しています:

  • 予約日は「2024-09-10」であり、appointment_dateという名前を持つ変数に格納されています。
  • お客様に読み上げる電話番号は「18005551212」で、callback_numberという変数に格納されています。

SSML を使用した「プロンプトの再生」ブロックの使用

シナリオ内で、追加 「プロンプトを再生」 ブロックを、お客様に予約の詳細をお伝えしたい場所に追加してください。「プロンプトの再生」ブロック内では、変数を使用して、プロンプトに「音声」セグメントを追加することで、ユーザーにメッセージを再生します:

$(appointment_date)の日時のご予約が確定いたしました。担当者に直接ご連絡をご希望の場合は、$(callback_number)までお電話ください。


SSMLタグなしの初期テキストを表示する「再生 Prompt」ブロック


日付のフォーマット

既定では、TTS エンジンが日付変数を誤って読み上げる場合があります。たとえば、$(appointment_date) に「2024-09-10」という値が含まれている場合、エンジンはこの値を「ツー・ゼロ・ツー・フォー・ダッシュ・ゼロ・ナイン・ダッシュ・ワン・ゼロ」と読み上げる可能性が高いです。

日付が自然に読み上げられるようにするには、interpret-as="date" を指定した <SAY-as> タグを使用してください。このタグにより、エンジンは値を「{月}の{序数}日、{年}」という形式で読み上げるよう指示されます。 format属性には、変数内の年(y)、月(m)、日(d)のフォーマットを正しく指定する必要があります。日付テキスト内の各フィールドは、句読点やスペースで区切られていても構いませんが、format属性で定義する必要はありません。

<SAY-as interpret-as="date" フォーマット="yyyymmdd">$(appointment_date)</SAY-as>

電話番号のフォーマット

同様に、連続した数字の文字列として保存された電話番号も、誤って解釈される可能性があります。

番号を正しく読み上げさせるには、interpret-as="telephone" を指定した <SAY-as> タグを使用してください。これにより、TTS エンジンが、聞き手が理解しやすく、書き留めやすい方法で番号を読み上げるようになります。

<say-as interpret-as="telephone">$(callback_number)</say-as>

プロンプトを更新し、TTSの音声を選択する

「Play Prompt」ブロック内のテキストコンテンツを更新し、前述のフォーマットタグを含めてください。TTS エンジンが指示を正しく処理するようにするには、メッセージ全体を <SPEAK> タグで囲む必要があります。

最終的なテキストは、以下のようになります:

<SPEAK>
<SAY-as interpret-as="date" フォーマット="yyyy-mm-dd">$(appointment_date)</SAY-as> のご予約日が確定しました。 プロバイダーに直接ご連絡をご希望の場合は、<SAY-as interpret-as="telephone">$(callback_number)</SAY-as>までお電話ください。
</SPEAK>


SSMLコードが完了した「プロンプト再生」ブロック


SSMLタグが機能するためには、ブロックが互換性のあるTTSエンジンを利用している必要があります。ブロック設定内の「言語」タブに移動してください。「既定のTTS音声」で、ご利用のTTS連携サービス(例:Google Cloud TTSやIBM Watson)からご希望の音声を選択してください。


TTS 連携の選択が表示された [Language] タブの設定


その他の一般的な SSML の使用ケース

SSML には、基本的な日付や数値のフォーマット設定以外にも、幅広いタグが用意されています。サポートされているタグの完全なリストについては、ご利用の TTS プロバイダーのドキュメントをご参照いただく必要がありますが、以下の例では、文字の読み上げ、強調の追加、再生速度のコントロールなど、コンタクトセンターでよく見られるユースケースをいくつかご紹介します:

<speak>
<!-- 参照番号の文字読み上げ -->
確認コードは <say-as interpret-as="characters">XYZ09</say-as> です。

<!-- 強調の追加 -->
この変更は <emphasis level="strong">永続的</emphasis> であることにご注意ください。

<BREAK time="500ms"/>

<!-- 発話速度の調整 -->
<PROSODY rate="slow">次のセキュリティPIN「5 9 2 1」を書き留めてください。</PROSODY>

<!-- 録音済みの音声を再生 -->
<AUDIO src="https://www.example.com/sounds/brand_jingle.mp3">
(ブランドジングル)
</AUDIO>

<!-- 通貨を正しく読み上げる -->
合計お支払額は <SAY-as interpret-as="currency">$45.50</SAY-as> です。

<!-- 段落と文で構成する -->
<P>
<S>まず、緑色のランプが点灯していることを確認してください。</S>
<S>次に、リセットボタンを押してください。</S>
</P>
</SPEAK>
< 前へ | 次へ >