音声テキストのカスタマイズ

概要

で定義されたタグのサブセットを使用することで、Vonage Voice API が機械生成したテキストをユーザーに再生する方法を制御できます。 音声合成マークアップ言語(SSML)仕様書.このXMLベースのマークアップにより、複数の言語をミックスしたり、特定の単語やNumbersの発音ヒントを提供したり、合成テキストのスピード、ボリューム、ピッチをコントロールしたりすることができます。

において エヌシーシーオー talk アクションを送信することができます。 SSMLタグ テキスト文字列の一部として をテキスト文字列の一部として使うことができる。しかしその前に、文字列全体を <speak></speak> タグを使うことで、その文字列が SSML を含んでいることを Vonage に伝えることができます。タグの属性値には一重引用符かエスケープされた二重引用符を使うことができます。

以下はSSMLの例である。 text NCCOのプロパティ talk アクションだ:

[
  {
    "action": "talk",
    "text": "<speak><p>Hello.</p><p>How are you?</p></speak>"
  }
]

SSMLタグ

  • 休憩:話し言葉に区切り(ポーズ)をつける
  • 強調:テキストの強調を追加または削除する
  • 言語:特定の単語に別の言語を指定する
  • 音素:を使ってテキストを綴る。 表音字母
  • プロソディー:話し言葉のピッチ、スピード、音量を設定する。
  • と言う:単語、Numbers、日付の発音のヒントを提供します。
  • 文章と段落:テキストを話すときに、APIが文と段落を認識するようにします。
  • 代替:特定のテキストをお好みの発音に置き換える

休憩

について break タグを使うと、テキストに一時停止を加えることができます。一時停止の時間は を使って指定することができる。 strength または time 秒またはミリ秒。

<speak>My name is <break time='1s' />Slim Shady.</speak>

有効 strength の値が含まれる:

  • none または x-weak (フルストップの後に存在する可能性のあるポーズを取り除く)
  • weak または medium (コンマ)
  • strong または x-strong (段落区切りに相当)
<speak>
To be <break strength='weak' />
or not to be <break strength='weak' />
that is the question.
</speak>

強調

単語を強調するには emphasis タグ単語を強調すると、話す速度と音量が変わる。強調が強ければ、話すテキストは大きく、遅くなる。強調が少ないと、静かで速くなります。

emphasis タグはプレミアムTTSボイスでは使用できません。

強調の度合いを指定するには level 属性を持つ。

有効 level の値が含まれる:

  • strong:音量を上げ、話す速度を遅くする。
  • moderate:音量を上げ、話す速度を遅くするが、強よりは弱い。 moderate がデフォルトだ。
  • reduced:音量を下げ、話す速度を速める。スピーチはよりソフトで速くなる。
<speak>
<emphasis level="moderate">This is an important announcement</emphasis>
</speak>

言語

について lang タグを使うと、特定の単語、フレーズ、文に別の言語を指定することができます。 外国語の発音をよくするのに便利かもしれません。 言語タグには、言語タグと 国コード(例 pt-BR ブラジル・ポルトガル語 en-GB の場合 イギリス英語の場合)。 国別コードが冗長になる可能性がある場合(たとえば it-IT イタリア語 イタリア語)。

<speak><lang xml:lang='it-IT'>Buongiorno</lang></speak>

ご注意ください、 lang は発音を変えるが、声の「母国語」は変えない、 例えば talk アクション/リクエストが en-USおよびSSML lang タグを fr-FR, を入力すると、アメリカン・アクセントのフランス語で話されます。 メッセージ全体の言語を変更するには language パラメータまたは talk アクション/リクエストの代わりに

すべての音声スタイルがサポートされているわけではありません。 lang タグを付けている。

音素

について phoneme タグを使うと、単語の国際音声記号(International Phonetic アルファベット(IPA)表記の単語を送信できます。これを使用するには の両方を指定する必要があります。 alphabet (どちらか ipa または x-sampa)と ph 属性には発音記号が含まれる。

<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>

プロソディー

について prosody タグでは、テキストのピッチ、レート、ボリュームを設定できる。 テキストの

  • について volume 属性には以下の値を設定できる: default, silent, x-soft, soft, medium, loud そして x-loud.また という形式で相対デシベル値を指定することもできます。 +ndB または -ndB どこ n は整数値である。

  • について rate 属性は発話速度を変更します。使用可能な値 を含みます: x-slow, slow, medium, fast そして x-fast.

  • について pitch 属性は声の高さを変えます。これは、定義済みの値ラベルか数値で指定できます。 を指定することができます。値 ラベルは default, x-low, low, medium, high そして x-high.ピッチ変更を数値で指定する場合のフォーマットは以下の通り: +n% そして -n%.

注:プレミアムTTSボイスを使用する場合は pitch 属性はサポートされていません。

以下の例では、ボリューム、レート、ピッチの変更方法を示しています。

<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>

セイ・アズ

について say-as タグを使うことで、特定の単語や数字をどのように話すかを指示することができます。これらの機能の多くは、TTSエンジンによって自動的に検出されます。 say-as コマンドを使えば、それらを特別にマークすることができる。

について say-as タグには必須属性があります: interpret-as.その属性は、以下の値のいずれかを含んでいなければならない:

価値 interpret-as 話し言葉への影響
character それぞれの文字を綴る: I-A-T-A.
cardinal 値を数字として発音する。例えば、"974 "は "nine hundred and seventy four "と発音する。
ordinal 数字を序数として発音する。例えば、"1 "は "first"、"33 "は "thirty-third "と発音する。
digits 指定された数字を数字として読み上げる。例えば、"747 "は "seven four seven "と発音し、"seven hundred and forty seven "とは発音しない。
fraction 数字を分数として読み上げる。例えば、"1/3 "は「3分の1」、"2 4/10 "は「10分の2と4」と発音する。
unit 指定された数値を単位として読み出す。値は、数値の後にスペースを空けずに単位を続けたものでなければならない。例えば"1m".
date 日付の発音を指定する。以下の 日付書式.
time 時間の長さを分単位、秒単位で発音します。例えば 1'30" は「1分30秒」と読む。
expletive 悪口を検閲するために、コンテンツを「ピッ」に置き換えます。これを使用すると、フィルタリングされた汚い言葉を自動的に置き換えることができます。
telephone 適切な区切りで電話番号を読み上げる。
address 住所を適切な区切りで読み上げる。

:すべての音声スタイルに対応しているわけではありません。 address オプションがある。

注: プレミアムTTSボイスを使用する場合は character 属性は意図したとおりに機能しない可能性があるため、避けるべきである。

一例を挙げよう:

<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>

日付フォーマット

日付の書式は以下の通り:

format 日付の読み上げ方法
mdy 月-日-年(例:「2019/3/10)
dmy 日・月・年(例:「2019/10/3)
ymd 年・月・日(例:"2019/3/10")
md 月日(例:「3/10)
dm 日月(例:"10/3")
ym 年・月(例:「2019/3)
my 月-年(例:"3/2019")
d
m
y
yyyymmdd オプションで ? を指定しないコンポーネントに置き換える。例えば 20190310 または ????0310.

下の例は「今日は3月10日」と変換される。

<speak>
Today is <say-as interpret-as="date" format="dm">10/3</say-as>
</speak>

文章と段落

文章

で文章を囲むことができます。 s タグを付ける。これは文末に これは、文末に完全な停止を置くことと同じである。

<speak>
<s>Thank you Mario</s>
<s>But our princess is in another castle</s>
</speak>

パラグラフ

について p タグを使うと、スピーチの段落を指定することができます。

<speak>
<p>Hello.</p>
<p>How are you?</p>
</speak>

代替

について sub タグを使用すると、代わりの発音を指定することができます。タグの内容は alias 属性が代わりに読み込まれる。

<speak>
Welcome to the <sub alias="United States">US</sub>.
</speak>