ํ ์คํธ๋ฅผ ๋ณด๋ด๋ฉด 0.6์ด ๋ง์ ํ๊ตญ์ด ์์ฑ์ด ๋์์ต๋๋ค. REST ํ ๋ฒ์ ํธ์ถ.
https://sonicboomtts.com โ ์๋ ์์ ์ ์๋ ๋ฐ์๋ฉ๋๋ค.1. ๋์๋ณด๋์์ ๊ฐ์
ํ๋ฉด API ํค(sk_live_โฆ)๋ฅผ ์ฆ์ ๋ฐ๊ธ๋ฐ์ต๋๋ค.
2. ์๋์ฒ๋ผ ํธ์ถํ๋ฉด reply.wav๊ฐ ์์ฑ๋ฉ๋๋ค.
# ํ ์คํธ โ ์์ฑ curl -s -o reply.wav __BASE__/v1/tts \ -H "X-API-Key: sk_live_..." \ -H "Content-Type: application/json" \ -d '{"text":"์๋ ํ์ธ์, ๋ฌด์์ ๋์๋๋ฆด๊น์?","voice":"30๋_์ฌ_1"}'
const r = await fetch("__BASE__/v1/tts", { method: "POST", headers: { "Content-Type":"application/json", "X-API-Key":"sk_live_..." }, body: JSON.stringify({ text:"์๋ ํ์ธ์", voice:"30๋_์ฌ_1" }) }); new Audio(URL.createObjectURL(await r.blob())).play();
import requests r = requests.post("__BASE__/v1/tts", headers={"X-API-Key":"sk_live_..."}, json={"text":"์๋ ํ์ธ์", "voice":"30๋_์ฌ_1"}) open("reply.wav","wb").write(r.content)
๋ชจ๋ ์์ฒญ์ ํค๋์ API ํค๊ฐ ํ์ํฉ๋๋ค.
ํค๋ ๋์๋ณด๋์์ ๋ฐ๊ธยท์กฐํ. ๋ ธ์ถ๋์ง ์๊ฒ ์๋ฒ์์๋ง ์ฌ์ฉํ์ธ์.
| ํ๋ | ํ์ | ์ค๋ช |
|---|---|---|
| text | ํ์ | ํฉ์ฑํ ํ ์คํธ |
| voice | ํ์ | ๋ชฉ์๋ฆฌ(ํ๋กํ์ผ)๋ช . ์ 30๋_์ฌ_1 ยท ๋ชฉ๋ก |
| language_id | ์ ํ | 1 ํ๊ตญ์ด(๊ธฐ๋ณธ) ยท 0 ์์ด ยท 2 ํผํฉ |
| n_timesteps | ์ ํ | ํฉ์ฑ ์คํ (๊ธฐ๋ณธ 64) |
audio/wav ๋ฐ์ด๋๋ฆฌ. ์๋ต ํค๋์ ํฌ๋ ๋ง ์ฌ์ฉ๋์ด ํฌํจ๋ฉ๋๋ค.
| ํค๋ | ์ค๋ช |
|---|---|
| X-Credits-Used | ์ด๋ฒ ์์ฒญ ํฌ๋ ๋ง |
| X-Credits-Remaining | ๋จ์ ํฌ๋ ๋ง |
ํฉ์ฑ์ ํ๊ตญ์ด 1์ โ 1.5ํฌ๋ ๋ง์ผ๋ก ์ฐจ๊ฐ๋ฉ๋๋ค(์ฌ๋ฆผ). ํ๋๋ณ ์ ํฌ๋ ๋ง์ ๋งค์ ์๋ ์ถฉ์ (์ด์ ์์).
์ ์ฒด ๋ชฉ๋ก์ ์ ์๋ํฌ์ธํธ๋ก ์กฐํ. ๋ํ ๋ชฉ์๋ฆฌ:
ํ๋ยทํฌ๋ ๋งยท์ฌ์ฉ๋์ JSON์ผ๋ก ๋ฐํํฉ๋๋ค.
| ์ฝ๋ | ์๋ฏธ |
|---|---|
| 400 | text/voice ๋๋ฝ ๋ฑ ์๋ชป๋ ์์ฒญ |
| 401 | ์ ํจํ์ง ์์ API ํค |
| 402 | ํฌ๋ ๋ง ๋ถ์กฑ โ ํ๋ ์ ๊ทธ๋ ์ด๋ ํ์ |
| 502 | ํฉ์ฑ ์์ง ์ค๋ฅ |