音声合成 webapi - devsite-pro.s3.amazonaws.com · 本api...

34
Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation) 音声合成 WebAPI 仕様書 1.0.0 版

Upload: others

Post on 06-Sep-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

音声合成 WebAPI 仕様書

1.0.0 版

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

改訂履歴

版 改訂日 改訂概要

1.0.0 初版

1

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

目次 1. はじめに ........................................................................................................................................2

2. 本 API 概要 ....................................................................................................................................3

3. 基本仕様 ........................................................................................................................................4

4. 通信仕様 ........................................................................................................................................5

4.1. 送信データ仕様 ......................................................................................................................5

4.2. 受信データ仕様 ......................................................................................................................6

5. パラメータ一覧 .............................................................................................................................7

6. レスポンスコード一覧 ...................................................................................................................9

6.1. レスポンスコード体系 ............................................................................................................9

6.2. レスポンスコード詳細 .......................................................................................................... 10

7. コマンド詳細仕様 ........................................................................................................................ 11

7.1. AP_Synth ........................................................................................................................... 11

7.1.1. 説明.................................................................................................................................. 11

7.1.2. 送信データ ....................................................................................................................... 12

7.1.3. 受信データ ....................................................................................................................... 12

7.1.4. 通信サンプル..................................................................................................................... 13

8. 音声合成対象テキスト ................................................................................................................. 15

8.1. 漢字かな混じり文 ................................................................................................................. 15

8.2. カナアクセント文 ................................................................................................................. 16

8.3. SSML .................................................................................................................................... 20

2

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

1. はじめに

本書はNTTテクノクロス株式会社が提供する音声合成Webアプリケーションインタフェースの

リファレンスマニュアルです。

3

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

2. 本 API 概要

本 API は、音声合成機能をアプリケーションへ提供することを目的とします。本 API は、HTTPS

によるアクセスを前提としています。

4

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

3. 基本仕様

本 API の基本仕様について、以下に記載します。

① 本 API は、Web サーバ上で動作します。

② 本 API は、アプリケーションからの送信情報を POST 形式で受信します。

そのため、アプリケーションは POST 形式で情報を付帯させ、本 API を呼び出す必要があ

ります。

③ 本 API の生存期間は、アプリケーションからの要求から、本 API の応答をアプリケーショ

ンが受信するまでとなります。それ以外の期間に生存することはありません。

④ アプリケーションからの要求とそれに対する本 API の応答は、1 つの要求につき 1 つの応

答となります。1 つの要求に対して応答が複数回発生する事や、要求がない状態で応答が

発生する事はありません。

⑤ 本 API は、クライアントから同時並行に要求を受け付けることが可能です。その場合、要

求の数に応じて、本 API が起動(プロセス生成)します。

同時実行時の要求数が 3 を超える場合は、エラーとなります。

⑥ 以下の 3 種類のテキスト形式に応じて、API が存在します。

I. 漢字かな混じり文

II. カナアクセント文

III. SSML

⑦ カナアクセント文の仕様については、「8.2.カナアクセント文」を参照して下さい。

⑧ SSML の仕様については、「8.3.SSML」を参照して下さい。

⑨ 本 API は、指定が無かったパラメータに対し既定値を適用します。

5

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

4. 通信仕様

本 API とアプリケーション間で取り交わすデータ送受信の通信仕様について以下に記載します。

4.1. 送信データ仕様

① アプリケーションが本 API へデータを送信する場合は、POST 形式を用います。

② 送信データは、HTTP のボディ部に添付します。

③ 送信データの最大サイズは、テキスト形式によって異なります。各テキスト形式における

動作保証サイズは「8. 音声合成対象テキスト」を参照してください。

④ 送信データの MIME タイプは、HTTP ヘッダの「Content-Type」フィールドで指定します。

指定可能な型は、以下になります。

application/json

JSON 形式

RFC4627 に準拠したデータフォーマット

パラメータは「”Paramater” : ”Value”」のフォーマットで記述

コマンド、各パラメータを「,」(半角カンマ(x2c))で結合

改行コードは CRLF

⑤ 下記に該当するパラメータを指定した場合、本 API では無視されます。

1. 存在しないパラメータ

2. 値が無いパラメータ

図 4-1.送信データ例

{

“Command”:”AP_Synth”,

“SpeakerID”:”1”,

“StyleID”:”1”,

“TextData”:”NTT の音声合成エンジンによる音声です。”

}

6

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

4.2. 受信データ仕様

① 本 API からアプリケーションが受信するデータは、HTTP ヘッダ部と HTTP ボディ部に添

付されています。

② HTTP ヘッダ部には、「Paramater : Value」のフォーマットで記述され、複数の受信デー

タがある場合には、テキスト・バイナリに関わらず、各データ間および終端に CRLF(改

行コード)が記述されます。本 API が記述したデータに関しては、以降の受信データの例

において、太字で示しています。

③ HTTP ボディ部は、音声データが含まれる場合に記述されます。HTTP ヘッダ部に記述さ

れた Content-Length の値に対応したサイズ のバイナリデータが存在 します。

Content-Length の値が 0 の場合、ボディ部にデータは存在しません。

図 4-2-1.HTTP ヘッダ部の受信データ例

図 4-2-2.HTTP ボディ部の受信データ例

HTTP/1.1 200 OK

Date: Mon, 25 Jan 2016 05:49:29 GMT

X-Frame-Options: SAMEORIGIN

Access-Control-Allow-Credentials: true

Access-Control-Allow-Headers: Origin, X-ApiKey, Content-Type, Accept, withCredentials

Access-Control-Allow-Methods: POST, GET

Access-Control-Allow-Origin: *

Content-Type: audio/aac

X-ResponseCode: 200 OK

X-Content-Length: 2706

X-ProtocolVersion: d-1.0.0

Content-Length: 2706

(Binary Data)

7

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

5. パラメータ一覧

本 API を使用するにあたって、設定が必要となるパラメータの一覧を以下に記載致します。

表 5-1.パラメータ一覧

No パラメータ名 型 範囲 初期値 説明

1 SpeakerID

【話者 ID】 整数

1

15

1

合成音声の話者

1 : あおい(元気なお姉さん)

2 : さくら(ハスキーなお姉さん)

3 : ゆい(女声)

4 : はづき(落ち着いている女性)

5 : くみこ(おばさん)

6 : はな(お婆さん)

7 : あいり(女の子)

8 : ひまり(メイド)

9 : つよし(癒し系お兄さん)

10: けいすけ(くだけたお兄さん)

11: かずひろ(男声)

12: しろう(おじさん)

13: しんいち(男の子)

14: たつや(執事)

15: ひとし(謎の男性)

2 StyleID

【口調 ID】 整数

1

15

「1.Spe

akerID」

に紐付く

口調 ID

合成音声の口調

1 : あおい(元気なお姉さん)

2 : さくら(ハスキーなお姉さん)

3 : ゆい(女声)

4 : はづき(落ち着いている女性)

5 : くみこ(おばさん)

6 : はな(お婆さん)

7 : あいり(女の子)

8 : ひまり(メイド)

9 : つよし(癒し系お兄さん)

10: けいすけ(くだけたお兄さん)

11: かずひろ(男声)

12: しろう(おじさん)

13: しんいち(男の子)

14: たつや(執事)

15: ひとし(謎の男性)

3 VoiceType

【声質】 小数

0.50

2.00

1

合成音声の声質

小数点第 2 位まで指定可

値が小さい:太い

8

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

No パラメータ名 型 範囲 初期値 説明

値が大きい:細い

4 SpeechRate

【話速】 小数

0.50

10.00

1

合成音声の速さ

小数点第 2 位まで指定可

値が小さい:遅い

値が大きい:速い

5 PowerRate

【音量】 小数

0

5.00

1

合成音声の声の大きさ

小数点第 2 位まで指定可

値が小さい:小さい

値が大きい:大きい

6

AudioFileFormat

【音声ファイルフォーマッ

ト】

整数 0~5 0

音声ファイルフォーマット

0:AAC、22,050Hz

1:Ogg Voirbis、22,050Hz

2:16bit LinearPCM Wave

3:8bit μ-law、8,000Hz

7 TextData

【音声合成対象テキスト】 文字列 ― ― 音声合成を行う対象のテキスト

9

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

6. レスポンスコード一覧

6.1. レスポンスコード体系

レスポンスコードは、3 桁の 10 進数で表現し、以下のように大別されます。

表 6-1.レスポンスコード体系

レスポンスコード 付与データ

2xx コマンドは正常に受け入れられ、処理が完了しました。

4xx メッセージ内のデータ項目の不足や値の異常、フォーマット不正などの理由で正常に

処理ができません。

40x 各コマンド共通

41x

43x 音声合成処理エラー

47x 音声合成サーバエラー

49x API 内部エラー、API 例外エラー

5xx システム側の問題で正常に処理ができません。

10

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

6.2. レスポンスコード詳細

レスポンスコードの詳細を、以下に記載します。

表 6-2.レスポンスコード詳細

種別 レスポンスコード

および説明句 付与データ

コマンド共通

200 OK コマンドが正常に処理し完了

400 NG コマンドに対して、正常に処理ができない

401 Command Not Supported サポートしていないコマンド、引数が不正

402 Request Size Over 送信データが最大サイズオーバー

416 Data Change Failure URL デコードおよび文字コード変換に失敗

418 User Max Connect Over WebAPI のアクセス数上限を超過

419 Illegal XM 送信データが不正な XML 形式

音声合成

430 Illegal Text 合成対象テキストが不正

431 Illegal Read カナアクセント文のフォーマットが不正

432 Synth Text Max Size Over 漢字かな混じり文の最大サイズオーバー

435 Failed To Deploy SSML SSML タグの展開に失敗

パラメータ

440 Illegal Parameter 不正なパラメータ

441 Illegal Value 不正なパラメータ値

442 Parameter Not Exist パラメータが存在しない

443 SpeakerID Not Exist 話者 ID が存在しない

444 StyleID Not Exist 口調 ID が存在しない

音声合成サーバ

470 TTS Open Error 音声合成サーバのチャネルオープン時にエラー

471 TTS TextAna Error 音声合成サーバのテキスト解析処理時にエラー

472 TTS Synth Error 音声合成サーバの音声合成処理時にエラー

473 TTS Close Error 音声合成サーバのチャネルクローズ時にエラー

474 TTS Not Exist 音声合成サーバが存在しない

475 TTS Comm Error 音声合成サーバとの通信エラー

476 TTS Over Connect 音声合成サーバが最大接続数オーバー

477 Customer Over Max Connect 最大接続可能数をオーバー

478 TTS Internal Error 音声合成サーバで内部エラーが発生

479 TTS Exception Error 音声合成サーバで例外が発生

内部エラー 498 WebAPI Internal Error 本 API で内部エラーが発生

その他のエラー

500 Server Error 音声合成サーバ側の問題で処理が継続できない

502 Server Busy 音声合成サーバが混雑していて処理が実行できない

510 DB Operation Faild DB の操作に失敗

511 Entry Already Exist 指定データが重複

512 Entry Not Exist 指定データが存在しない

514 Update Failure 更新処理に失敗

515 Lock Failure ロックの取得に失敗

11

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

7. コマンド詳細仕様

本 API の各コマンド仕様について、以下に記載します。

7.1. AP_Synth

7.1.1. 説明

① 同期型音声合成の処理要求を行うコマンドです。

② 音声合成システムでの音声合成処理が行われ、合成音声が生成されます。

③ 音声合成時の各種パラメータは、引数による直接指定で設定することができます。

④ 話者 ID・口調 ID は、「使用可能な話者 ID・口調 ID」となっている場合に指定することが

できます。

⑤ 音声合成対象テキストの文字コードが「UTF-8(BOM 無し)」と異なる場合や、EUC-JP

および Windows-31J の表現範囲外の文字を使用している場合、下記結果が生じることが

あります。

1. エラーが返却される

2. 期待と異なる合成音声が生成され、正常に終了する

3. 合成音声が生成されず、正常に終了する

⑥ 以下の 2 つの場合は合成音声が得られないという点では同様の結果となりますが、返却さ

れるエラーが異なります。

1. 音声合成対象テキストを指定しなかった場合

2. 音声合成対象テキストを指定したが、テキスト解析の結果読みが付与されなかった場合

⑦ 音声合成対象テキストの長さによっては、音声合成処理に数分かかる場合があります。

⑧ 以下に該当する場合、音声合成システムでタイムアウトが発生することがあります。

1. 音声合成対象テキストが長く、音声合成処理時間が長い場合

2. 音声合成システムがビジーな状態の場合

3. 通信経路に遅延が発生した場合

⑨ 音声合成対象テキストは、テキスト形式によって動作を保証するサイズが異なります。音

声合成対象テキストの動作保証サイズやフォーマットの詳細は「8. 音声合成対象テキスト」

を参照してください。

12

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

7.1.2. 送信データ

(1-1) リクエストボディ用パラメータ一覧

No. パラメータ名 省略

可/不可 備考・制限事項

1 SpeakerID

【話者 ID】 不可 ・指定した SpeakerID が存在しない場合エラー

2 StyleID

【口調 ID】 不可 ・指定した StyleID が存在しない場合エラー

3 VoiceType

【声質】 可 ・範囲外の値を設定した場合エラー

4 SpeechRate

【話速】 可 ・範囲外の値を設定した場合エラー

5 PowerRate

【音量】 可 ・範囲外の値を設定した場合エラー

6 AudioFileFormat

【音声ファイルフォーマット】 可 ・範囲外の値を設定した場合エラー

7 SamplingRate

【サンプリング周波数】 可 ・範囲外の値を設定した場合エラー

8 TextData

【音声合成対象テキスト】 不可 ・テキストが空の場合エラー

7.1.3. 受信データ

(1-2) レスポンスヘッダ

No. 項目名 引数名 型 説明

1 バージョン情報 X-ProtocolVersion 文字列 プロトコルのバージョン

2 レスポンスコード X-ResponseCode 文字列

200 OK:正常

200 OK 以外:異常

「6.レスポンスコード一覧」を参照

3 ボディ部サイズ X-Content-Length 整数 レスポンスボディのサイズ(byte)

(1-3) レスポンスボディ

No. 項目名 引数名 型 説明

1 音声データ ― ― ・音声データ

13

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

7.1.4. 通信サンプル

(1-4) リクエストサンプル

送信データのパラメータ:

SpeakerID: 1

StyleID: 1

SpeechRate: 1.5

TextData: 今日は晴れです。

送信データ:

POST /futureVoiceCrayon/v1/textToSpeech HTTP/1.1

Content-Type: application/json

Accept-Encoding: gzip, deflate

Host: localhost

Content-Length: 106

Connection: Keep-Alive

Cache-Control: no-cache

{

“Command”: “AP_Synth”,

“SpeakerID”: “1”,

“StyleID”: “1”,

“TextData”: “今日は晴れです。”

}

14

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

(1-5) レスポンスサンプル

返却データの内容:

音声データ

返却データ:

HTTP/1.1 200 OK

Date: Mon, 25 Jan 2016 05:49:29 GMT

X-Frame-Options: SAMEORIGIN

Access-Control-Allow-Credentials: true

Access-Control-Allow-Headers: Origin, X-ApiKey, Content-Type, Accept, withCredentials

Access-Control-Allow-Methods: POST, GET

Access-Control-Allow-Origin: *

Content-Type: audio/aac

X-ResponseCode: 200 OK

X-Content-Length: 2706

X-ProtocolVersion: d-1.0.0

Content-Length: 2706

(Binary Data)

15

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

8. 音声合成対象テキスト

音声合成の対象となるテキストデータです。同期型音声合成、テキスト解析を使用する場合に用

います。これについて本節で示します。

8.1. 漢字かな混じり文

漢字や平仮名、片仮名などが混在した平文テキストデータです。

(1) データ構成

漢字かな混じり文

図 8-1 漢字かな混じり文のデータ構成

(2) データ構成要素

表 8-1 漢字かな混じり文のデータ構成要素

No. 項目 説明 デ ー タ

型 (文字

種)

文字数 値の範囲 省略

1. 漢字かな混じ

り文

日本語 UTF-8 で表現できる文字の内、

EUC-JPおよびWindows-31Jにおいても可

逆的に変換可能な文字であれば、全て許容

します。なお、制御コードとして改行を含

むことができます。

上記に示した文字コード制限、文字数制限

を満たさなかった場合、音声合成において、

下記結果が生じることがあります。

・エラーになる

・期待と異なる結果になる

文字列

(全角半

角 お よ

び改行)

3,000

文字

- 不可

(3) サンプル

今日はいい天気ですね。

明日も晴れです。

図 8-2 漢字かな混じり文のサンプル

16

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

8.2. カナアクセント文

テキストの読みとアクセント位置、結合型を、全角片仮名と記号、数値により表現するものです。

カナアクセント文は、1 つ以上のポーズ句で構成されます。

アクセント句間およびポーズ句間は、半角角括弧([])と結合型、アクセント位置の指定により区

切られます。

(1) カナアクセント文のデータ構成

ポーズ句

図 8-3 カナアクセント文のデータ構成

(2) ポーズ句のデータ構成

アクセント句◇[結合型◇アクセント位置]...アクセント句◇[結合型◇アクセント位置]

図 8-4 ポーズ句のデータ構成

(3) カナアクセント文のデータ構成要素

表 8-2 カナアクセント文のデータ構成要素

No. 項目 説明 デ ー タ

型 (文 字

種)

文字数 値の範囲 省略

1. ポーズ句 1 つ以上のアクセント句により構成されま

す。

なお、複数のポーズ句からなるカナアクセ

ント文の上限は約 7,000 文字(漢字かな混

じり文 3,000 文字相当)です。

詳細については「表 8-3 ポーズ句のデータ

構成要素」を参照してください。

- - - 不可

17

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

(4) ポーズ句のデータ構成要素

表 8-3 ポーズ句のデータ構成要素

No. 項目 説明 データ

型 ( 文

字種)

文字数 値の範囲 省略

1. アクセント句 アクセントのまとまりを、一つ以上の「モ

ーラ単位の片仮名」の連結で構成します。

「モーラ単位の片仮名」に、無声化記号の

半角ハット(^)を付与した場合、無声化され

ます。例:「シュ^」

無声化できない「モーラ単位の片仮名」に、

無声化記号を付与した場合は無視され、無

声化されません。

なお、無声化記号(^) と長音記号(ー) を繋

げて記述することはできません。

例:「ピー」=OK、「ピ^ー」=NG

99 個まで「モーラ単位の片仮名」を指定で

きます。

使用可能な「モーラ単位の片仮名」、および

無声化可能な「モーラ単位の片仮名」につ

いては「表 8-4 カナアクセント文に使用可

能なモーラ単位の片仮名」を参照してくだ

さい。

文字列

( 全 角

半角)

- - 不可

18

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

No. 項目 説明 データ

型 ( 文

字種)

文字数 値の範囲 省略

2. 結合型 直前のアクセント句と直後のアクセント句

との結びつき方を指定します。この場合に

用いる結合型は、ポーズ句末尾には指定す

ることができません。

「/(半角スラッシュ)」「*(半角アスタリス

ク)」:直後のアクセント句の抑揚を抑制す

る結合方法を指定します。

または、ポーズ句間のポーズの大きさを指

定します。

「%(半角パーセント)」:極小ポーズとして

指定しているポーズを指定します。

「△(半角スペース)」:アクセント句間に挿

入する既定サイズのポーズ(小ポーズ)を

指定します。

「,(半角カンマ)」:読点「、」に対応したポ

ーズ(中ポーズ)を指定します。

「.(半角ピリオド)」:句点「。」に対応した

ポーズ(大ポーズ)を指定します。

「?(半角クエスチョンマーク)」:直前アク

セント句の疑問口調の作成、ポーズ(大ポ

ーズ)を指定します。

文字列

( 半 角

記号)

1 - 不可

3. アクセント位置 アクセントのある「モーラ単位の片仮名」

のアクセント句先頭からの位置を半角数字

二桁で指定します。"00"を指定した場合、

アクセント無しになります。

例:「ワッカナイ[,03]」:"カ"にアクセント

整数

( 半 角

数字)

2 00 以上

99 以下

不可

19

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

表 8-4 カナアクセント文に使用可能なモーラ単位の片仮名

ア ヴ

ァ カ ガ

ァ サ ザ タ ダ

ァ ナ ハ バ パ

ァ マ ヤ ラ

イ ヴ

ィ キ ギ

ィ ニ ビ ピ

ィ ミ リ

ウ ヴ ク グ ス ズ ト

ゥ ツ ヌ ブ プ フ ム ユ ル

エ ヴ

ェ ケ ゲ

ェ セ ゼ テ デ

ェ ネ ヘ ベ ペ

ェ メ レ

オ ヴ

ォ コ ゴ

ォ ソ ゾ ト ド

ォ ノ ホ ボ ポ

ォ モ ヨ ロ

ワ キ

ャ ー

ィ シ ジ チ ヂ

ィ ヒ

ュ ヅ

ュ ッ

ョ ン

※網掛けセルは無声化指定可能

(5) サンプル

キョーワ[/01]イー[/01]テンキデスネ[.01]アスモ[/02]ハレデス^[.02]

図 8-5 カナアクセント文のサンプル

20

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

8.3. SSML

W3C 勧告(Recommendation)として公開している、XML ベースの音声合成向け記述言語

「Speech Synthesis Markup Language(SSML)」 の略称です。バージョン 1.0 に対応してい

ます。

話者・話速・声の高さなど合成音声の要素を指定できます。

データ構成要素は全て XML 形式で表現されます。

(1) SSML の構成

表 8-5 SSML の構成

タグ名 説明

<?xml> XML 開始

属性情報を以下に示します。

version : XML バージョン ("1.0" 固定)

encoding : 文字エンコーディング ("UTF-8" 固定)

DOCTYPE 宣言 ルート要素と外部 DTD の指定

以下の宣言となります。

<!DOCTYPE speak SYSTEM "ssml.dtd">

※ssml.dtd は、SSML バージョン 1.0 で規定された、下記 URL に基づい

たファイルです。

http://www.w3.org/TR/speech-synthesis/synthesis.dtd

<speak> SSML のルートタグ

属性情報を以下に示します。

version :SSML バージョン ("1.0" 固定)

xml:lang :言語の指定。指定に関わらず日本語になります。

SSML タグ SSML タグを記載することで、音声合成を記述できます。

詳細は「表 8-6 SSML タグの構成要素」を参照してください。

21

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

(2) SSML タグの構成要素

表 8-6 SSML タグの構成要素

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

p

段落を指定しま

す。

直下の階層の最

後の属性がテキ

ストなら、改行を

付与します。

子階層にタグ、テ

キストを含むこ

とができます。

属性値が指定さ

れていた場合に

は無視されます。

- - -

s

文を指定します。

直下の階層の最

後の属性がテキ

ストなら、改行を

付与します。

子階層にタグ、テ

キストを含むこ

とができます。

属性値が指定さ

れていた場合に

は無視されます。

- - -

say-as

読み方(読みクラ

ス)を

interpret-as 属

性で指定します。

子階層にタグ、テ

キストを含むこ

とができます。

有効な属性値が

指定されていな

い場合にはエラ

ーになります。

interpret-

as

english

英字読みとして読み方を指定します。

指定例: <say-as interpret-as="english">it</say-as>

読み例: イト[.01]

roman

ローマ字読みとして読み方を指定します。

指定例:

<say-as interpret-as="roman">yama</say-as>

読み例: ヤマ[.00]

literal

字種別に下記の通りに読み方を指定します。

アルファベット=アルファベット読み

数字=棒読み

記号=記号読み

指定例: <say-as interpret-as="literal">it</say-as>

読み例: アイティー[.03]

22

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

dmy

"日月年"を示す数値列を日付とする読み方を指定します。

指定例:

<say-as interpret-as="dmy">01122009</say-as>

読み例: ニセン[/02]キュー[/00]ネン[ 01]ジューニガツ

[*05]ツイタチ[.04]

mdy

"月日年"を示す数値列を日付とする読み方を指定します。

指定例:

<say-as interpret-as="mdy">12012009</say-as>

読み例: ニセン[/02]キュー[/00]ネン[ 01]ジューニガツ

[*05]ツイタチ[.04]

ymd

"年月日"を示す数値列を日付とする読み方を指定します。

指定例: <say-as

interpret-as="ymd">20091201</say-as>

読み例: ニセン[/02]キュー[/00]ネン[ 01]ジューニガツ

[*05]ツイタチ[.04]

ym

"年月"を示す数値列を日付とする読み方を指定します。

指定例: <say-as

interpret-as="ym">200912</say-as>

読み例: ニセン[/02]キュー[/00]ネン[*01]ジューニガツ

[.05]

my

"月年"を示す数値列を日付とする読み方を指定します。

指定例: <say-as

interpret-as="my">122009</say-as>

読み例: ニセン[/02]キュー[/00]ネン[*01]ジューニガツ

[.05]

md

"月日"を示す数値列を日付とする読み方を指定します。

指定例: <say-as interpret-as="md">1201</say-as>

読み例: ジューニガツ[*05]ツイタチ[.04]

hms

"時分秒"を示す数値列を時刻とする読み方を指定します。

指定例: <say-as

interpret-as="hms">201530</say-as>

読み例: ニジュージ[/02]ジューゴフン[/03]サンジュービ

ョー[.03]

hm

"時分"を示す数値列を時刻とする読み方を指定します。

指定例: <say-as interpret-as="hm">2015</say-as>

読み例: ニジュージ[/02]ジューゴフン[.03]

23

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

email

メールアドレスとして読み方を指定します。

指定例:

<say-as interpret-as="email">[email protected]</say-as>

読み例: アア[ 00]アットマーク[ 00]ビービー[/00]ドット

[ 00]シーオー[*03]ジェイピー[.03]

※テキスト解析結果に依存して読みが変わることがありま

す。

url

URL として読み方を指定します。

指定例:

<say-as

interpret-as="url">http://www.w3.org/</say-as>

読み例: エイチ^ティーティーピー[ 08]コロン[ 00]スラッ

シュスラッシュ[ 00]ダブリュダブリュダブリュ[/07]ドッ

ト[ 00]ダブリュ[/00]サン[ 00]ドット[ 00]オーアールジー

[ 00]スラッシュ[.02]

※テキスト解析結果に依存して読みが変わることがありま

す。

phone

電話番号として読み方を指定します。

指定例:

<say-as

interpret-as="phone">012-345-6789</say-as>

読み例: ゼロイチニノ[ 03]サンヨンゴノ[ 03]ロクナナ

[*03]ハチ^キュー[.03]

postal

郵便番号として読み方を指定します。

指定例:

<say-as interpret-as="postal">012-3456</say-as>

読み例: ゼロイチニノ[ 03]サンヨン[*03]ゴーロク[.03]

curren

cy

通貨として読み方を指定します。下記通貨を指定可能です。

$ : ドル

¢ : セント

¥ : 円

£ : ポンド

指定例:

<say-as interpret-as="currency">\100</say-as>

読み例: ヒャクエン[.02]

24

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

math

数式として読み方を指定します。下記演算記号を指定可能で

す。

= : イコール

+ : プラス

- : マイナス

* : カケル

/ : ワル

( : ヒラキカッコ

) : トジカッコ

指定例:

<say-as interpret-as="math">10-3=7</say-as>

読み例: ジュー[ 01]マイナス[ 00]サン[ 00]イコール[ 02]

ナナ[.01]

fractio

n

分数・小数として読み方を指定します。

指定例: <say-as

interpret-as="fraction">7/2</say-as>

読み例: ニブンノ[/01]ナナ[.01]

measu

re

数字に後続する文字列を助数詞とみなした読み方を指定し

ます。

指定例:

<say-as interpret-as="measure">100m</say-as>

読み例: ヒャクメートル[.03]

cardina

l

基数として読み方を指定します。

number と読み方は同一になります。

ordinal 序数として読み方を指定します。

number と読み方は同一になります。

name

姓名として読み方を指定します。

指定例:

<say-as interpret-as="name">山田太郎</say-as>

読み例: ヤマダ[*00]タロー[.01]

※テキスト解析結果に依存して読みが変わることがありま

す。

numbe

r

数値に対し桁読みとして読み方を指定します。

指定例:

<say-as interpret-as="number">12345</say-as>

読み例: イチマン[ 03]ニセン[*02]サンビャク[*01]ヨン

ジュー[*01]ゴ[.01]

digits

数値に対し棒読みとして読み方を指定します。

指定例: <say-as

interpret-as="digits">12345</say-as>

読み例: イチニー[*03]サンヨンゴ[.03]

25

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

firstna

me

姓として読み方を指定します。

「表 8-4 カナアクセント文に使用可能なモーラ単位の片仮

名」が使用可能です。なお、無声化記号(^)は使用できませ

ん。

指定例:

<say-as interpret-as="firstname:ヤマダ">山田

</say-as>

読み例: ヤマダ[.00]

※本属性値を使用する場合は子階層にテキストのみ含むこ

とができます

※テキスト解析結果に依存して読みが変わることがありま

す。

lastna

me

名前として読み方を指定します。

「表 8-4 カナアクセント文に使用可能なモーラ単位の片仮

名」が使用可能です。なお、無声化記号(^)は使用できませ

ん。

指定例: <say-as interpret-as="lastname:タロウ">太郎

</say-as>

読み例: タロウ[.00]

※本属性値を使用する場合は子階層にテキストのみ含むこ

とができます

※テキスト解析結果に依存して読みが変わることがありま

す。

phonem

e

読み方として発

音列を属性で指

定します。

子階層にテキス

トのみ含むこと

ができます。

有効な属性値が

指定されていな

い場合にはエラ

ーになります。

read *

片仮名による読みで読み方を指定します。

「表 8-4 カナアクセント文に使用可能なモーラ単位の片仮

名」の内、「長音記号(ー)」以外の片仮名が使用可能です。

なお、無声化記号(^)は使用できません。

指定例: <phoneme read="タロウ">太郎</phoneme>

さん

読み例: タローサン[.01]

※テキスト解析結果に依存して読みが変わることがありま

す。

ph *

片仮名による読み(+アクセント型)で読み方を指定します。

アクセント型は半角アポストロフィ(’)をアクセントが来る

読みの後ろに指定します。

指定例:

<phoneme ph="タ'ロウ">太郎</phoneme>さん

読み例: タロウサン[.01]

※テキスト解析結果に依存して読みが変わることがありま

す。

26

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

lvread *

片仮名による読み(+長音記号(ー))で読み方を指定しま

す。

「表 8-4 カナアクセント文に使用可能なモーラ単位の片仮

名」が使用可能です。なお、無声化記号(^)は使用できませ

ん。

指定例: <phoneme lvread="タロー">太郎</phoneme>

さん

読み例: タローサン[.01]

※テキスト解析結果に依存して読みが変わることがありま

す。

sub

子階層のテキス

トを、alias 属性

で指定したテキ

ストで置き換え

ます。

子階層にテキス

トのみ含むこと

ができます。

有効な属性値が

指定されていな

い場合にはエラ

ーになります。

alias * 漢字かな混じり文を置換文字列として指定します。

指定例:<sub alias="衆議院">衆院</sub>予算委員会

voice

合成音声の性別、

話者、口調を指定

します。

子階層にタグ、テ

キストを含むこ

とができます。

同時に複数の属

性値を指定する

ことができます。

有効な属性値が

指定されていな

い場合にはエラ

ーになります。

gender

male 男声を指定します。

指定例: <voice gender="male">男声</voice>

female 女声を指定します。

指定例: <voice gender="female">女声</voice>

neutral

中性的な声を指定します。

指定例: <voice gender="neutral">ニュートラル

</voice>

name *

話者名に該当する話者モデルを指定します。なお、口調モデ

ルを明示的に指定しない場合、指定された話者モデルに紐付

くデフォルトの口調モデルが使用されます。

「表 5-1.パラメータ一覧」の SpeakerID の説明に記載さ

れた話者名が指定可能です。

指定例:

<voice name="つよし">私は山田太郎です。</voice>

style *

口調名に該当する口調モデルを指定します。

「表 5-1.パラメータ一覧」の StyleID の説明に記載された

話者名が指定可能です。

指定例:

<voice style="はな">私は山田太郎です。</voice>

27

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

emphasi

s

読み方の強さを

指定します。

子階層にタグ、テ

キストを含むこ

とができます。

有効な属性値が

指定されていな

い場合にはエラ

ーになります。

level

strong

大きく強調して読みます。

指定例:

<emphasis level="strong">10日の</emphasis >ご予

約ですね?

moder

ate

強調して読みます。

指定例:

<emphasis level="moderate">10日の</emphasis >

ご予約ですね?

none

強調せず普通の読み方をします。

指定例:

<emphasis level="none">10日の</emphasis >ご予約

ですね?

reduce

強調度合いを普通よりも抑制した読み方をします。

指定例:

<emphasis level="reduce">10日の</emphasis >ご予

約ですね?

break

アクセント句の

境界を指定しま

す。

子階層の作成は

できません。

付属語がなくな

る場合がありま

す。

有効な属性値が

指定されていな

い場合にはエラ

ーになります。

strength

none アクセント句の境界にならないことを指定します。

指定例: はーい<break strength="none"/>待って

x-weak アクセント句の境界として強結合を指定します。

指定例: はーい<break strength="x-weak"/>待って

weak アクセント句の境界として弱結合を指定します。

指定例: はーい<break strength="weak"/>待って

mediu

m

アクセント句の境界として小ポーズを指定します。

指定例: はーい<break strength="medium"/>待って

strong アクセント句の境界として中ポーズを指定します。

指定例: はーい<break strength="strong"/>待って

x-stron

g

アクセント句の境界として大ポーズを指定します。

指定例: はーい<break strength="x-strong"/>待って

time *

アクセント句の境界としてミリ秒単位でポーズを指定しま

す。

指定可能な値は 0 ~ 60000 です。

指定例: ここにポーズ<break time="2000"/>を入れます。

prosody

音声の韻律を指

定します。

子階層にタグ、テ

キストを含むこ

とができます。

同時に複数の属

性値を指定する

ことができます。

pitch

x-low

声の高さを極めて低く指定します。

指定例:

<prosody pitch="x-low">おはようございます。

</prosody>

low

声の高さを低く指定します。

指定例:

<prosody pitch="low">おはようございます。

</prosody>

28

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

有効な属性値が

指定されていな

い場合にはエラ

ーになります。

mediu

m

声の高さを中に指定します。

指定例:

<prosody pitch="medium">おはようございます。

</prosody>

high

声の高さを高く指定します。

指定例:

<prosody pitch="high">おはようございます。

</prosody>

x-high

声の高さを極めて高く指定します。

指定例:

<prosody pitch="x-high">おはようございます。

</prosody>

*

声の高さの絶対値、または相対値を指定します。

指定可能な絶対値は 1 ~ 20 です。

指定可能な相対値は -10 ~ +10 です。

絶対値指定例:

<prosody pitch="14">おはようございます。</prosody>

相対値指定例:

<prosody pitch="+2">おはようございます。</prosody>

range

x-low

抑揚の大きさを極小に指定します。

指定例:

<prosody range="x-low">おはようございます。

</prosody>

low

抑揚の大きさを小に指定します。

指定例:

<prosody range="low">おはようございます。

</prosody>

mediu

m

抑揚の大きさを中に指定します。

指定例:

<prosody range="medium">おはようございます。

</prosody>

high

抑揚の大きさを大に指定します。

指定例:

<prosody range="high">おはようございます。

</prosody>

x-high

抑揚の大きさを極大に指定します。

指定例:

<prosody range="x-high">おはようございます。

</prosody>

29

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

*

抑揚の大きさの絶対値、または相対値を指定します。

指定可能な絶対値は 1 ~ 20 です。

指定可能な相対値は -10 ~ +10 です。

絶対値指定例:

<prosody range="14">おはようございます。

</prosody>

相対値指定例:

<prosody range="+2">おはようございます。

</prosody>

rate

x-slow

発話速度を極小に指定します。

指定例:

<prosody rate="x-low">おはようございます。

</prosody>

slow

発話速度を小に指定します。

指定例:

<prosody rate="low">おはようございます。</prosody>

mediu

m

発話速度を中に指定します。

指定例:

<prosody rate="medium">おはようございます。

</prosody>

fast

発話速度を大に指定します。

指定例:

<prosody rate="high">おはようございます。

</prosody>

x-fast

発話速度を極大に指定します。

指定例:

<prosody rate="x-high">おはようございます。

</prosody>

*

発話速度の絶対値、または相対値を指定します。

指定可能な絶対値は 1 ~ 20 です。

指定可能な相対値は -10 ~ +10 です。

絶対値指定例:

<prosody rate="14">おはようございます。</prosody>

相対値指定例:

<prosody rate="+2">おはようございます。</prosody>

duration *

音声の再生時間を秒数で指定します。

指定可能な値は 0.1 ~ 3600 です。

なお、実際に適用される再生時間は、適用前の再生時間に対

し最大で 8 倍、最小で 0.01 倍の秒数に制限されます。

指定例: <prosody duration="3">こんにちは。

</prosody>

30

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

タグ名 タグ名の説明 属性 属性値 属性・属性値の説明

volume

x-soft

音量を極小に指定します。

指定例:

<prosody volume="x-low">おはようございます。

</prosody>

soft

音量を小に指定します。

指定例:

<prosody volume="low">おはようございます。

</prosody>

mediu

m

音量を中に指定します。

指定例:

<prosody volume="medium">おはようございます。

</prosody>

loud

音量を大に指定します。

指定例: <prosody volume="high">おはようございます。

</prosody>

x-loud

音量を極大に指定します。

指定例: <prosody volume="x-high">おはようございま

す。</prosody>

*

音量の絶対値、または相対値を指定します。

指定可能な絶対値は 1 ~ 20 です。

指定可能な相対値は -10 ~ +10 です。

絶対値指定例: <prosody volume="14">おはようござい

ます。</prosody>

相対値指定例: <prosody volume="+2">おはようござい

ます。</prosody>

属性値の * のマークは、任意の値を指定できることを示しています。

31

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

(3) サンプル

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE speak SYSTEM "ssml.dtd">

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="japanese">

<prosody rate="5">

ここは

<prosody rate="x-low">

ゆっくり

</prosody>

読みます。

</prosody>

</speak>

図 8-6 SSML のサンプル

32

Copyright© 2017 NTT テクノクロス株式会社(NTT TechnoCross Corporation)

本文中の製品名は、一般に各メーカーの商標または登録商標です。

本ドキュメントは、作成者の書面による許諾なく複製・転載することを禁じます。

本ドキュメントは、予告なく内容を変更する場合があります。

音声合成 WebAPI 仕様書 第 1.0.0 版

Copyright(c) 2017 NTT TechnoCross Corporation. All rights reserved.