音量、速度、感情のタグはベータ版であり、今後変更される可能性があります。
Sonic は、生成される音声を制御するために SSML 風 (Speech Synthesis Markup Language) のタグをサポートしています。
sonic-3 および sonic-3.5 で利用可能。
トークンごとにストリーミングする場合、speed タグまたは volume タグの値全体をバッファリングする必要があります。
たとえば 1、.、0 を別々の入力として渡すと、タグがそのまま読み上げられてしまいます。
speed タグを使って TTS 生成の速度を指定できます。0.6 から 1.5 のスカラー値を指定します。
この値はおおよそデフォルト速度の倍率に相当します。たとえば 1.5 は、デフォルト速度の約 1.5 倍で音声を生成します。
<speed ratio="1.5"/> I like to speak quickly because it makes me sound smart.
sonic-3 および sonic-3.5 で利用可能。
volume タグを使って TTS 生成の音量を指定できます。0.5 から 2.0 の数値を指定します。デフォルトの音量は 1 です。
<volume ratio="0.5"/> I will speak softly.
感情 Beta
感情の制御は実験的なものであり、特に生成の途中で感情の変化が発生する場合は不安定です。原稿中で感情を変更する必要がある場合は、感情ごとに別の生成コンテキストを使用することを推奨します。最良の結果を得るには 「Emotive」とタグ付けされたボイス を使用してください。他のボイスでは感情が正しく機能しない場合があります。
<emotion value="angry"/> I will not allow you to continue this! <emotion value="sad"/> I was hoping for a peaceful resolution.
ポーズと区切り
生成音声にポーズ (区切り) を挿入するには、time 属性を 1 つだけ持つ break タグを使用します。たとえば <break time="1s"/> のようにします。時間は秒 (s) またはミリ秒 (ms) で指定できます。
これらのタグは課金上 1 文字としてカウントされ、隣接するテキストとの間に空白を入れる必要はありません。クレジットを節約するために break タグの前後の空白は削除して構いません。
Hello, my name is Sonic.<break time="1s"/>Nice to meet you.
数字や文字のスペリング
入力テキストをスペルアウトするには、<spell> タグで囲みます。
これは、クレジットカード番号、電話番号、固有 ID など、長い数字や識別子を読み上げる際に特に便利です。
My name is Bob, spelled <spell>Bob</spell>, my account number is <spell>ABC-123</spell>, my phone number is <spell>(123) 456-7890</spell>, and my credit card is <spell>1234-5678-9012-3456</spell>.
数字や識別子をスペルアウトする際に、生成間に計画的なポーズを入れたい場合 (たとえば電話番号の市外局番と残りの番号の間にポーズを入れるなど) は、<break> と <spell> タグを組み合わせることができます。これらのタグは 1 文字としてカウントされ、隣接するテキストとの間に空白を入れる必要はありません。クレジットを節約するために break タグと spell タグの前後の空白は削除して構いません。
My phone number is <spell>(123)</spell><break time="200ms"/><spell>4712177</spell> and my credit card number is <spell>1234</spell><break time="200ms"/><spell>5678</spell> <break time="200ms"/><spell>6347</spell><break time="200ms"/><spell>4537</spell>.