ホーム API API 音声合成

音声合成

    音声合成APIは、テキストを受け付け、その入力に対して自然な感じの読み上げをする機能を提供します。

    API
    基本情報

    ■エーアイ

    提供 : REST, SDK(Android™,iOS,Server side JAVA)

    ■HOYA

    提供 : REST

    ■NTTテクノクロス

    提供 : REST

    法人情報登録あり : 利用可[制限なし]

    法人情報登録なし : 利用可[制限あり]

    利用条件 : あり※1

    ※1「ガイドライン(必読)」に記載の利用条件に予め同意していただく必要がございます。

    ご利用いただくためには「アカウント登録(無料)」が必要です。

    リファレンスを参照するAPI機能名を選択してください

    SSML


    • XML(マークアップ言語)形式で記述することができ、読み上げテキストの一部分だけを音量を大きくしたり、ある語句の声の高さを部分的に変更したりなど、細かな制御が可能です。

    リクエストURL

    https://api.apigw.smt.docomo.ne.jp/aiTalk/v1/textToSpeech
    

    メソッド : POST
    文字コード : UTF-8

    リクエストヘッダ

    キー 必須 説明
    Content-Type 送信データのMIMEタイプは、下記を指定。
    application/ssml+xml : 日本語SSML形式
    Accept 受信データのMIMEタイプは、下記のいずれかを指定。
    audio/L16 : 音声データ(Binary)を返却。
    application/x-aitalk-kana : 中間言語(AIカナ)※2をテキストで返却。
    text/x-jeita-6004-kana : JEITAカナ※3をテキストで返却。
    ※中間言語(AIカナ)の詳細資料については、こちらのお問い合わせから仕様書をご請求ください。
    Content-Length リクエストボディの長さを指定(単位はbyte)。

    リクエストクエリパラメータ

    キー 必須 説明
    APIKEY APIにアクセスするアプリの認証に利用する。

    リクエストボディ

    キー 必須 説明
    - SSML仕様のテキストを指定(下記のSSML仕様を参照)。

    SSML仕様

    要素と属性 必須 説明
    <speak> SSMLルート要素。
    <speak>要素には、テキストと <break>, <p>, <phoneme>, <prosody>, <say-as>, <sub>,<s>, <token>, <voice>, <w> の要素のみを含むことができる。
       version SSML のバージョンを示す必須の属性。
    属性値には下記を指定する。
    <speak version="1.1">
    <voice> 読み上げ音声の変更を要求する要素。
    <voice>要素には、テキストと <break>, <p>, <phoneme>, <prosody>, <say-as>, <sub>,<s>, <token>, <voice>, <w> の要素のみを含むことができる。
    サンプル値)  <voice name="nozomi"> こんにちは </voice>
       name テキストを読み上げる「話者名」を示す属性。
    下記のいずれかを指定する。
    "nozomi"、"seiji"、"akari"、"anzu"、"hiroshi"、"kaho"、 "koutarou"、"maki"、"nanako"、"osamu"、"sumire"
    <prosody> - 音声出力のピッチ(高さ)、読み上げ速度(話速)、音量の制御などを行う要素。
    <prosody>要素には、テキストと <break>, <p>, <phoneme>, <prosody>, <say-as>,<sub>, <s>, <token>, <voice>, <w> の要素のみを含むことができる。
    サンプル値)
      <prosody rate="0.8">
      <prosody pitch="1.3">えー</prosody>
      <prosody pitch="1.4" volume="1.2">けーー</prosody>
      <prosody pitch="1.5" volume="0.6">しーー</prosody>
      <prosody pitch="1.6" volume="1.1">すーー</prosody>
      </prosody>
       pitch - テキストを読み上げるベースライン・ピッチを制御する属性。
    基準値は1.0 で、0.50~2.00 の範囲で指定できる(小数点第二位まで指定可能)。
    range - テキストを読み上げるピッチ・レンジを制御する属性。
    基準値は1.0 で、0.00~2.00の範囲で指定できる(小数点第二位まで指定可能)。
    rate - テキストを読み上げる速度を制御する属性。
    基準値は1.0 で、0.50~4.00 の範囲で指定できる(小数点第二位まで指定可能)。
    volume - テキストを読み上げる音量を制御する属性。
    基準値は1.0 で、0.00~2.00 の範囲で指定できる(小数点第二位まで指定可能)。
    <p> - 段落を表す要素。
    この要素の直前と直後は文末扱いになる。
    <p>要素には、テキストと <break>, <p>, <phoneme>, <prosody>, <say-as>, <sub>, <s>,<token>, <voice>, <w> の要素のみを含むことができる。
    サンプル値) <p>おはよう</p><p>おやすみ</p>
    <s> - 文を表す要素。
    この要素の範囲内には文末記号を挿入する事はできず、要素の直前と直後は文末扱いになる。
    <s>要素には、テキストと <break>, <phoneme>, <say-as>, <sub>, <token>, <w> の要素のみを含むことができる。
    サンプル値) <s>こんにちは</s><s>さようなら</s>
    <break> - 休止またはその他のトークン間の韻律の境界を制御する空要素。
    <break>要素には、なにも含むことはできない。
    サンプル値)
      よーい
      <break time="3000ms" />
      どん
       time 挿入される休止のms時間を制御する属性。
    80ms~30,000ms の範囲で指定できる。
    <token> - <token>はトークンを表す要素。<w>要素は<token>要素の別名。
    この要素は、このコンテンツがトークであること示し、トークン(単語)の区切りの曖昧さを取り除くことができる。
    <token>要素には、テキストのみを含むことができる。
    サンプル値) <token>東京</token><w>特許</w><w>許可</w>
    <say-as> - 要素内のテキスト構成子の種類に関する情報を示す要素。
    この要素は記述テキストの詳細さのレベルを指定するのに役立ち、読み上げ方のヒントを与えることができる。
    <say-as>要素には、特定のテキストのみを含むことができる。
       interpret-as 記述されているテキスト構成子のコンテンツの種類を示す属性。
       "characters" - テキストが個別の文字であることを指示する。
    指定可能な文字は、半角英数記号のみ。
    "date" - テキストが日付であることを指示する。
    指定可能な文字は"format"に依存する。
    format= "y" / "m" / "d"
    指定可能な文字は、半角数字のみ。
    format= "ym" / "my" / "md" / "dm"/ "ymd" / "dmy" / "mdy"
    指定可能な文字は、半角数字と半角記号'/'(斜線/スラッシュ)・'-'(マイナス/ハイフン記号)のみ。
    サンプル値) <say-as interpret-as="date" format="ymd">2012/04/05</say-as>
    "time" - テキストが時刻であることを指示する。
    指定可能な文字は"format"に依存する。
    ここでの【AMPM 指定】とは、半角の "a.m." / "p.m." / "AM" / "PM" の文字列をテキストの先頭または末尾に記述する事を指す。これは、"a.m."("p.m.")と指定された場合は「エーエム(ピーエム)」と、"AM"("PM")と指定された場合は「午前(午後)」と読み上げる指示になる。
    format= "h12"
    指定可能な文字は、半角数字と「AMPM 指定」のみ。
    format= "h" / "m" / "s"
    指定可能な文字は、半角数字のみ。
    format= "hm" / "ms" / "hms"
    指定可能な文字は、半角数字と半角記号':'(コロン)・'-'(マイナス/ハイフン記号)のみ。
    format= "hm12" / "hms12"
    指定可能な文字は、半角数字と半角記号':'(コロン)・'-'(マイナス/ハイフン記号)と「AMPM 指定」のみ。
    サンプル値) <say-as interpret-as="time" format="hm12">AM12:34</say-as>
    "telephone" - テキストが電話番号であることを指示する。
    指定可能な文字は、半角数字と半角記号'('(左丸かっこ)・')'(右丸かっこ)・'-'(マイナス/ハイフン記号)・' '(スペース/空白)のみ。
    format - interpret-as で指定されたコンテンツのフォーマットを明記する属性。
    <phoneme> - テキストに音素/発音上の発音を付与する要素。
    <phoneme>要素には、テキストのみを含むことができる。空でも良い。
       ph 音素/音声の文字列を指定する属性。
    テキストの読み上げ方をJEITA カナ(JEITA TT-6004)※3で指定する。
    JEITA カナは、1 つの要素につき最大60 文字まで指定できる。それ以上長い発音を指定したい場合は、発音の区切り毎にphoneme 要素を並べて指定する事ができる。なお、JEITA カナの「文末記号」および「センテンス間のポーズ」を指定することはできない。
    サンプル値) <phoneme ph="ピカチュウ">光宙</phoneme>
    <sub> - テキストを別なテキストに置き換えられる事を示す要素。
    この要素により、記述形式のテキストと、読み上げ用のテキストの両方を含むことが可能。
    <sub>要素には、テキストのみを含むことができる。
       alias 読み上げ用のテキストを指定する属性。
    サンプル値) <sub alias="インド">印</sub>

    レスポンスヘッダ

    キー 必須 説明
    Content-Type リクエストヘッダのAcceptで指定したMIMEタイプにより、下記のいずれかを返却。
    audio/L16; rate=16000; channel=1
    application/x-aitalk-kana
    text/x-jeita-6004-kana
    transfer-encoding - リクエストヘッダのAcceptでaudio/L16を指定した場合、下記を返却。
    Chunked
    Content-Length - リクエストヘッダのAcceptでapplication/x-aitalk-kana、もしくはtext/x-jeita-6004-kanaを指定した場合、レスポンスボディのサイズを返却。

    レスポンスボディ

    データ データ形式 説明
    音声データ Binary リクエストヘッダのAcceptで、audio/L16を指定した場合に返却。
    音声データのフォーマットは下記の通り。

    【符号化方式】
    リニアPCM
    【チャネル数】
    1(モノラル)
    【サンプル周波数】
    16000
    【ビット深度】
    16bit(ビッグエンディアン)
    中間言語(AIカナ) テキスト
    (UTF-8)
    リクエストヘッダのAcceptで、application/x-aitalk-kanaを指定した場合、中間言語(AIカナ)を返却。
    ※中間言語(AIカナ)の詳細資料については、こちらのお問い合わせから仕様書をご請求ください。
    JEITAカナ テキスト
    (シフトJIS)
    リクエストヘッダのAcceptでtext/x-jeita-6004-kanaを指定した場合、JEITAカナを返却。

    リクエストサンプル1

    POST https://api.apigw.smt.docomo.ne.jp/aiTalk/v1/textToSpeech?APIKEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
    Content-Type:application/ssml+xml
    Accept:audio/L16
    Content-Length:241
    
    <?xml version="1.0" encoding="utf-8" ?>
    <speak version="1.1">
    <voice name="nozomi">
    のぞみです。おはようございます。
    </voice>
    <break time="1000ms" />
    <voice name="seiji">
    せいじです。こんにちは。
    </voice>
    </speak>
    

    レスポンスサンプル1

    HTTP/1.1 200 OK
    Content-Type: audio/L16; rate=16000; channel=1
    transfer-encoding:chunked
    
    音声データ(Binary)
    

    リクエストサンプル2

    POST https://api.apigw.smt.docomo.ne.jp/aiTalk/v1/textToSpeech?APIKEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
    Content-Type:application/ssml+xml
    Accept:application/x-aitalk-kana
    Content-Length:241
    
    <?xml version="1.0" encoding="utf-8" ?>
    <speak version="1.1">
    <voice name="nozomi">
    のぞみです。おはようございます。
    </voice>
    <break time="1000ms" />
    <voice name="seiji">
    せいじです。こんにちは。
    </voice>
    </speak>
    

    レスポンスサンプル2

    HTTP/1.1 200 OK
    Content-Type:application/x-aitalk-kana
    Content-Length:182
    
    <S>(VOICE REQUIRED=nozomi_16)|0ノ^ゾミデ!ス<F><S>オ^ハヨーゴザイマ!ス<F><S>(SILENCE MSEC=1000)<F><S>(VOICE REQUIRED=seiji_16)|0セ!イジデス<F><S>コ^ンニチワ<F>
    

    リクエストサンプル3

    POST https://api.apigw.smt.docomo.ne.jp/aiTalk/v1/textToSpeech?APIKEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
    Content-Type:application/ssml+xml
    Accept:text/x-jeita-6004-kana
    Content-Length:241
    
    <?xml version="1.0" encoding="utf-8" ?>
    <speak version="1.1">
    <voice name="nozomi">
    のぞみです。おはようございます。
    </voice>
    <break time="1000ms" />
    <voice name="seiji">
    せいじです。こんにちは。
    </voice>
    </speak>
    

    レスポンスサンプル3

    HTTP/1.1 200 OK
    Content-Type:text/x-jeita-6004-kana
    Content-Length:40
    
     ノゾミデ'ス。オハヨーゴザイマ'ス。。 セ'イジデス。コンニチワ。
    

    (※2)中間言語(AIカナ) : カタカナで「読み」、「韻律記号」(アクセント、ポ ーズ位置、ポーズ長など)、「制御タグ」(音声辞書、音量、話速、ポーズなど)を指定できる株式会社エーアイの独自規格。

    (※3)JEITAカナ : 社団法人電子情報技術産業協会のITS車載器用音声合成記号JEITA TT-6004規格準拠。

    よくあるご質問
    APIなどの各サービスに関するよくある質問を掲載します。
    お問い合わせ
    「docomo Developer support」及び「作ろうスマートフォン/iモードコンテンツ」に関するお問い合わせです。よくあるご質問や技術ブログで解決しない場合は、お問い合わせください。