Download OpenAPI specification:Download
API Changelog
CoeFontのREST APIです。
アクセスキー及びアクセスシークレットはアカウント設定 → API情報ページから取得してください。
CoefontAPIの利用時にはHMAC-SHA256を用いて署名する必要があります。
以下の仕様に基づいて適切にヘッダーを設定してください。
ヘッダー | 詳細 |
---|---|
X-Coefont-Date | UNIX時間 (UTC) |
X-Coefont-Content | アクセスシークレットを用いて以下のデータをHMAC-SHA256でハッシュ化した結果をhex形式で表した文字列 - UNIX時間(UTC) - リクエストボディ |
Authorization | アクセスキー |
Content-Type | application/json |
データのハッシュ化については次のようなフローで行います。
import hmac
import requests
import hashlib
import json
from datetime import datetime, timezone
accesskey = 'QY4Tuiug6XidAKjDS5zTQHGSI'
access_secret = '62A03zCgPflc3NZwFHliphpKFt4tppOpdmUHgqPR'
text = 'これはテストです。'
date: str = str(int(datetime.utcnow().replace(tzinfo=timezone.utc).timestamp()))
data: str = json.dumps({
'coefont': '2b174967-1a8a-42e4-b1ae-5f6548cfa05d',
'text': text
})
signature = hmac.new(bytes(access_secret, 'utf-8'), (date+data).encode('utf-8'), hashlib.sha256).hexdigest()
response = requests.post('https://api.coefont.cloud/v2/text2speech', data=data, headers={
'Content-Type': 'application/json',
'Authorization': accesskey,
'X-Coefont-Date': date,
'X-Coefont-Content': signature
})
if response.status_code == 200:
with open('response.wav', 'wb') as f:
f.write(response.content)
else:
print(response.json())
テキストを合成音声に変換します。yomi
とaccent
が両方指定された場合は、その読みアクセントを合成音声に変換します(yomi
accent
パラメータ対応は日本語CoeFontのみ)。英語CoeFontの場合は英語、中国語CoeFontの場合は中国語のみ読み上げることができます。
Content-Type required | string Content-Type |
Authorization required | string アクセスキー |
X-Coefont-Date required | string UNIX時間(UTC) |
X-Coefont-Content required | string アクセスシークレットを用いて署名した文字列 |
Text
coefont required | string 音声変換を行うcoefontのID。coefont詳細画面のurlに表示される個別のuuidを参照。 |
text required | string [ 1 .. 1000 ] characters 音声変換するテキスト |
yomi | string non-empty 読み(ひらがな) |
accent | string non-empty アクセント。1と2からなる文字列で、1が低い音、2が高い音になる。読み(yomi)の文字1つずつと前方から対応関係にあり、文字列の長さを同じにする必要がある。 |
speed | number <float> [ 0.1 .. 10 ] Default: 1 音声の速度。1.0で通常速度。0.5で半速。2.0で2倍速。 |
pitch | number <float> [ -3000 .. 3000 ] Default: 0 音声のピッチ。±1200で1オクターブ変化。 |
kuten | number <float> [ 0 .. 5 ] Default: 0.5 句点の間隔(秒) |
toten | number <float> [ 0.2 .. 2 ] 読点の間隔(秒)。0.2から2.0の範囲で指定可能です。指定がない場合はモデルごとに自動で推定されます。 |
volume | number <float> [ 0.2 .. 2 ] Default: 1 音量(倍) |
intonation | number <float> [ 0 .. 2 ] Default: 1 抑揚 |
format | string Enum: "wav" "mp3" 音声ファイルのフォーマット |
{- "coefont": "1f58f1ae-2e9c-443a-9e3c-60d8e5dee3b8",
- "text": "これはテストです",
- "yomi": "これはてすとです。",
- "accent": "122221221",
- "speed": 1,
- "pitch": 0,
- "kuten": 0.5,
- "toten": 0.2,
- "volume": 1,
- "intonation": 1,
- "format": "wav"
}
{- "message": "error message"
}
テキストをまとめて合成音声に変換します。合計文字数を1000文字程度以内にしてください。
Content-Type required | string Content-Type |
Authorization required | string アクセスキー |
X-Coefont-Date required | string UNIX時間(UTC) |
X-Coefont-Content required | string アクセスシークレットを用いて署名した文字列 |
Text
required | Array of objects (PostText2SpeechBatchOne) non-empty 音声変換するテキストとCoeFontを指定した配列 |
format | string Enum: "wav" "mp3" 音声ファイルのフォーマット |
{- "data": [
- {
- "coefont": "1f58f1ae-2e9c-443a-9e3c-60d8e5dee3b8",
- "text": "これはテストです",
- "speed": 1,
- "pitch": 0,
- "kuten": 0.5,
- "toten": 0.2,
- "volume": 1,
- "intonation": 1
}
], - "format": "wav"
}
{- "message": "error message"
}
ユーザー辞書の一覧を取得します
category | string カテゴリー |
Content-Type required | string Content-Type |
Authorization required | string アクセスキー |
X-Coefont-Date required | string UNIX時間(UTC) |
X-Coefont-Content required | string アクセスシークレットを用いて署名した文字列 |
[- {
- "text": "ユーザー辞書",
- "category": "カテゴリー",
- "yomi": "ゆーざーじしょ",
- "accent": "1222212"
}
]
ユーザ辞書のアイテムを追加します。単語とカテゴリーが重複している場合は上書きされます。
Content-Type required | string Content-Type |
Authorization required | string アクセスキー |
X-Coefont-Date required | string UNIX時間(UTC) |
X-Coefont-Content required | string アクセスシークレットを用いて署名した文字列 |
ユーザー辞書のアイテム
text required | string [ 1 .. 100 ] characters 辞書に登録する単語 |
category required | string non-empty カテゴリー |
yomi required | string [ 1 .. 100 ] characters 読み(ひらがな または カタカナ) |
accent | string non-empty アクセント。1と2からなる文字列で、1が低い音、2が高い音になる。読み(yomi)の文字1つずつと前方から対応関係にあり、文字列の長さは同じになる。 |
{- "text": "ユーザー辞書",
- "category": "カテゴリー",
- "yomi": "ゆーざーじしょ",
- "accent": "1222212"
}
{- "message": "error message"
}