音声合成 (ttsget)

音声の合成および言語処理を行う API です。

音声合成・言語処理 API

テキスト・SSML・中間言語から、音声または中間言語を取得します。

リクエスト

リクエスト方法

メソッド

GET、POST

URL

https://webapi.aitalk.jp/webapi/v5/ttsget.php

リクエストパラメーター

リクエストパラメーターは次のとおりです。

詳細な情報は、パラメーターごとに後述します。

名前

概要

必須

補足

username

ユーザー名

契約情報のユーザー名です。

password

パスワード

契約情報のパスワードです。

speaker_name

話者名

話者一覧 の話者名を指定します。

input_type

入力データタイプ

text パラメーターの値の種類を指定します。

text

入力データ

入力データを指定します。

use_udic

ユーザー辞書利用フラグ

ユーザー辞書の利用有無を指定します。

output_type

出力データタイプ

音声合成出力か、言語処理出力かを指定します。

ext

出力音声形式

出力音声の形式を指定します。

fs

出力サンプリング周波数

出力音声のサンプリング周波数を指定します。

bit

ビット深度

出力音声のビット深度を指定します。

channels

チャンネル数

出力音声のチャンネル数を指定します。

mvolume

マスターボリューム

範囲は 0.015.00 で、省略時は 1.00 です。

volume

ボリューム

範囲は 0.012.00 で、省略時は 1.00 です。

speed

話速

範囲は 0.504.00 で、省略時は 1.00 です。

pitch

高さ

範囲は 0.502.00 で、省略時は 1.00 です。

range

抑揚

範囲は 0.002.00 で、省略時は 1.00 です。

style

発話スタイル

感情表現などの発話スタイルを指定します。

spause

短ポーズ

範囲は 80500 で、省略時は 150 です。

lpause

長ポーズ

範囲は 1002000 で、省略時は 370 です。

epause

文末ポーズ

範囲は 20010000 で、省略時は 800 です。

tpause

終端ポーズ

範囲は 010000 で、省略時は 0 です。

username

契約時情報のユーザー名を指定します。必ず指定してください。

password

契約時情報のパスワードを指定します。必ず指定してください。

speaker_name

話者一覧 の話者名を 1 つだけ指定します。必ず指定してください。

省略した場合や不正な話者名を指定した場合はエラーとなります。

input_type

text 値の種類を指定します。

下記種類から 1 つだけ指定します。省略時は ssml です。

ssml

入力データは SSML と解釈されます。

注釈

SSML の記載方法

SSML 仕様 を参照してください。

そのうち、<?xml … ?> タグと <speak> ルート要素は記載不要であることに注意してください。

text

入力データは SSML でないテキストと解釈されます。

text

入力データを指定します。

文字エンコードは UTF-8 です。

なお、次の場合は合成エラーとなりますのでご注意ください。 ..

  • 入力データに読みが存在しない場合 (例:「?」など読みがない記号のみの場合)

  • 入力データに制御コードが含まれる場合

  • 入力データタイプが ssml で、入力データが SSML 構文に則っていない場合

  • 入力データタイプが ssml で、入力データ中に「&」(半角アンパサンド)や「<」(半角小なり)が含まれる場合

    「&」や「<」のように全角にするとエラー回避できます。

use_udic

ユーザー単語辞書、および、ユーザーフレーズ辞書の利用有無を指定します。

1

ユーザー辞書を利用します。

0

ユーザー辞書を利用しません。

output_type

出力の種類を指定します。

下記種類から 1 つだけ指定します。省略時は sound です。

sound

合成音声を出力します。

音声の形式は、extfsbitchannels を指定することで変更できます。

kana

言語処理を行い、AI カナ を出力します。文字エンコードは UTF-8 です。

jeita

未実装機能です。今後のバージョンアップで実装が予定されています。

言語処理を行い、JEITA カナ を出力します。文字エンコードは UTF-8 です。

ext

出力音声形式を指定します。

output 値が省略または sound の場合のみ有効です。

下記種類から 1 つだけ指定します。省略時は ogg です。

ogg

Ogg/vorbis 形式 ( 2 channels ) で出力します。

fs パラメータでサンプリング周波数の指定が併用できます。

aac

AAC 形式 ( 2 channels ) で出力します。

fs パラメータでサンプリング周波数の指定が併用できます。

mp3

MP3 形式 ( 2 channels) で出力します。

fs パラメータでサンプリング周波数の指定が併用できます。

wav

WAV 形式 ( ヘッダー有り ) で出力します。

fs パラメータでサンプリング周波数の指定が併用できます。

bit パラメータでビット深度の指定が併用できます。

channels パラメータでチャンネル数の指定が併用できます。

ulaw

μ-Law 形式 ( ヘッダー有り、8 kHz、8 bit、1channel ) で出力します。

alaw

A-Law 形式 ( ヘッダー有り、8 kHz、8 bit、1channel ) で出力します。

fs

出力音声のサンプリングレートを指定します。

output 値が省略または sound の場合のみ有効です。

下記周波数から 1 つだけ指定します。

  • 8000

  • 11025

  • 16000

  • 22050

  • 32000

  • 44100

  • 48000

また、auto を指定すると、話者ごとに推奨されるサンプリングレートを自動選択します。

省略時は auto です。

bit

出力音声のビット深度を指定します。

output 値が省略または sound の場合、かつ、ext 値が wav の場合のみ有効です。

下記ビット数から 1 つだけ指定します。 省略時は 16 です。

  • 8

  • 16

channels

出力音声のチャンネル数を指定します。

output 値が省略または sound の場合、かつ、ext 値が wav の場合のみ有効です。

下記ビット数から 1 つだけ指定します。 省略時は 1 です。

  • 1

  • 2

mvolume

出力音声のマスターボリュームを指定します。省略時は 1.00 です。

範囲は 0.015.00 で、省略時は 1.00 です。

小数点以下 2 桁までの実数値で指定してください。

後述の volume パラメーターと併用可能です。

output 値が省略または sound の場合のみ有効です。

volume

出力音声の音量を指定します。省略時は 1.00 です。

範囲は 0.012.00 で、省略時は 1.00 です。

小数点以下 2 桁までの実数値で指定してください。

前述の mvolume パラメーターと併用可能です。

output 値が省略または sound の場合のみ有効です。

speed

出力音声の話速を指定します。省略時は 1.00 です。

範囲は 0.504.00 で、省略時は 1.00 です。

小数点以下 2 桁までの実数値で指定してください。

output 値が省略または sound の場合のみ有効です。

pitch

出力音声の高さを指定します。省略時は 1.00 です。

範囲は 0.502.00 で、省略時は 1.00 です。

小数点以下 2 桁までの実数値で指定してください。

output 値が省略または sound の場合のみ有効です。

range

出力音声の抑揚を指定します。省略時は 1.00 です。

範囲は 0.002.00 で、省略時は 1.00 です。

小数点以下 2 桁までの実数値で指定してください。

output 値が省略または sound の場合のみ有効です。

style

発話スタイルを指定します。

感情表現など、発話スタイル表現に対応している話者を speaker_name で指定したときのみ有効です。

また、output 値が省略または sound の場合のみ有効です。

値には、スタイル種別と割合を「種別:割合」の形式で指定します。

種別は、喜びなら j、怒りなら a、悲しみなら s となります。

割合は、0.001.00 の小数点 2 桁までの数値になります。 数値が大きくなるほど、そのスタイルが強く反映されます。

複数のスタイル種別を混合する場合は、種別1:割合1,種別2:割合2,… の形式で指定します。 すべての割合の合計が 1 以下になるように指定します。

この値を JSON 形式で指定し、URL パラメータとして渡す場合には URL エンコードをしてください。

  • {"j":"1"}

  • {"j":"0.5","s":"0.15","a":"0.35"}

spause

短ポーズの長さを指定します。 短ポーズとは、日本語解析で自動的に挿入される短めのポーズです。

output 値が省略または sound の場合のみ有効です。

80500 で、省略時は 150 です。単位は [msec] です。 整数で指定してください。

lpause

長ポーズの長さを指定します。 長ポーズとは、日本語解析で自動的に挿入される長めのポーズです。

output 値が省略または sound の場合のみ有効です。

範囲は 1002000 で、省略時は 370 です。単位は [msec] です。 整数で指定してください。

epause

文末ポーズの長さを指定します。 文末ポーズとは、日本語解析で自動的に文末に挿入されるポーズです。

output 値が省略または sound の場合のみ有効です。

範囲は 20010000 で、省略時は 800 です。単位は [msec] です。 整数で指定してください。

tpause

終端ポーズの長さを指定します。 終端ポーズとは、音声の最後に挿入されるポーズです。文末ポーズと重複することに注意してください。

output 値が省略または sound の場合のみ有効です。

範囲は 010000 で、省略時は 0 です。単位は [msec] です。 整数で指定してください。

レスポンス

正常レスポンス

正常に処理された場合、HTTP ステータスコード 200 を返します。

音声合成処理の場合は、音声データをバイナリデータとして返却します。

言語処理の場合は、変換後の中間言語を返却します。 Content-Type は、AI カナへの変換では application/x-aitalk-kana、JEITA カナ への変換では text/x-jeita-6004-kana となります。

エラーレスポンス

正常に処理できない場合の エラー通知 は共通です。

リクエスト例

curl プログラムによるリクエストの例を示します。

usernameuserpasswordpass としています。

Windows (cmd.exe)

curl -s -v -XPOST ^
-d "username=user&password=pass&speaker_name=nozomi&text==%E4%BB%8A%E6%97%A5%E3%81%AF%E3%81%84%E3%81%84%E5%A4%A9%E6%B0%97%E3%81%A7%E3%81%99%E3%81%AD%E3%80%82" ^
https://webapi.aitalk.jp/webapi/v5/ttsget.php
curl -s -v -XGET ^
"https://webapi.aitalk.jp/webapi/v5/ttsget.php?username=user&password=pass&speaker_name=nozomi&text==%E4%BB%8A%E6%97%A5%E3%81%AF%E3%81%84%E3%81%84%E5%A4%A9%E6%B0%97%E3%81%A7%E3%81%99%E3%81%AD%E3%80%82"

Linux (bash)

curl -s -v -XPOST \
-d "username=user&password=pass&speaker_name=nozomi&text==%E4%BB%8A%E6%97%A5%E3%81%AF%E3%81%84%E3%81%84%E5%A4%A9%E6%B0%97%E3%81%A7%E3%81%99%E3%81%AD%E3%80%82" \
https://webapi.aitalk.jp/webapi/v5/ttsget.php
curl -s -v -XGET \
"https://webapi.aitalk.jp/webapi/v5/ttsget.php?username=user&password=pass&speaker_name=nozomi&text==%E4%BB%8A%E6%97%A5%E3%81%AF%E3%81%84%E3%81%84%E5%A4%A9%E6%B0%97%E3%81%A7%E3%81%99%E3%81%AD%E3%80%82"