Amazon
Todos os modelos da Amazon na Synthorai: um endpoint, preços em tempo real.
1 modelo · realtime / audio · entrada a partir de $0.06/M
Por que usar a Amazon via Synthorai
- Pagamento por uso, sem assinatura. Uma chave, todos os modelos, sem precisar de conta na Amazon.
- Zero retenção de prompts. Retenção zero de prompt no gateway por padrão; as políticas de dados da Amazon se aplicam upstream. Detalhes →
Modelos e preços da Amazon
| Modelo | Entrada /M | Saída /M |
|---|---|---|
| nova-2-sonicbeta por convite | $0.06 | $0.24 |
Preços de tabela do provedor, sem margem da plataforma. Os preços se atualizam em tempo real na página de cada modelo. Estes são os preços de tabela oficiais. Clientes autenticados podem ver os preços efetivos com descontos do espaço de trabalho em /console/pricing.
Use os modelos da Amazon em 30 segundos
import asyncio, base64, json, websockets
URL = "wss://synthorai.io/v1/realtime?model=nova-2-sonic"
# Send ONLY the Authorization header — the beta protocol is retired.
HEADERS = {"Authorization": "Bearer sk-syn-..."}
async def main():
async with websockets.connect(URL, additional_headers=HEADERS) as ws:
# 1) configure the speech-to-speech session
await ws.send(json.dumps({
"type": "session.update",
"session": {
"type": "realtime",
"output_modalities": ["audio"],
"audio": {"output": {"voice": "alloy"}},
},
}))
# 2) send input audio (base64 PCM16), then request a spoken reply
await ws.send(json.dumps({"type": "input_audio_buffer.append", "audio": pcm16_b64}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
await ws.send(json.dumps({"type": "response.create"}))
# 3) stream the model's audio (and text) back
async for raw in ws:
ev = json.loads(raw)
if ev["type"] == "response.audio.delta":
play(base64.b64decode(ev["delta"])) # audio out
elif ev["type"] == "response.done":
break
asyncio.run(main())import WebSocket from "ws";
const ws = new WebSocket("wss://synthorai.io/v1/realtime?model=nova-2-sonic", {
// Send ONLY the Authorization header — the beta protocol is retired.
headers: { Authorization: "Bearer sk-syn-..." },
});
ws.on("open", () => {
// configure the speech-to-speech session
ws.send(JSON.stringify({ type: "session.update", session: {
type: "realtime", output_modalities: ["audio"], audio: { output: { voice: "alloy" } },
} }));
// send input audio (base64 PCM16), then request a spoken reply
ws.send(JSON.stringify({ type: "input_audio_buffer.append", audio: pcm16Base64 }));
ws.send(JSON.stringify({ type: "input_audio_buffer.commit" }));
ws.send(JSON.stringify({ type: "response.create" }));
});
ws.on("message", (raw) => {
const ev = JSON.parse(raw.toString());
if (ev.type === "response.audio.delta") playAudio(Buffer.from(ev.delta, "base64")); // audio out
else if (ev.type === "response.done") ws.close();
});# Realtime is a WebSocket protocol — use a WS client such as websocat.
# Each line below is one OpenAI Realtime event (JSON) sent to the session.
websocat -H 'Authorization: Bearer sk-syn-...' \
'wss://synthorai.io/v1/realtime?model=nova-2-sonic' <<'EOF'
{"type":"session.update","session":{"type":"realtime","output_modalities":["audio"],"audio":{"output":{"voice":"alloy"}}}}
{"type":"input_audio_buffer.append","audio":"<base64-pcm16>"}
{"type":"input_audio_buffer.commit"}
{"type":"response.create"}
EOF
# Responses stream back as response.audio.delta (base64 audio out) … response.donepackage main
import (
"net/http"
"github.com/gorilla/websocket"
)
func main() {
h := http.Header{}
h.Set("Authorization", "Bearer sk-syn-...")
// Send ONLY the Authorization header — the beta protocol is retired.
c, _, err := websocket.DefaultDialer.Dial("wss://synthorai.io/v1/realtime?model=nova-2-sonic", h)
if err != nil {
panic(err)
}
defer c.Close()
// configure the speech-to-speech session, send audio, request a spoken reply
c.WriteJSON(map[string]any{"type": "session.update", "session": map[string]any{
"type": "realtime", "output_modalities": []string{"audio"},
"audio": map[string]any{"output": map[string]any{"voice": "alloy"}}}})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.append", "audio": pcm16B64})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.commit"})
c.WriteJSON(map[string]any{"type": "response.create"})
for {
var ev struct {
Type string `json:"type"`
Delta string `json:"delta"`
}
if err := c.ReadJSON(&ev); err != nil {
return
}
if ev.Type == "response.audio.delta" {
playAudio(ev.Delta) // base64 audio out
} else if ev.Type == "response.done" {
return
}
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.WebSocket;
import java.util.concurrent.CompletionStage;
// JDK built-in WebSocket — no extra dependency needed.
WebSocket ws = HttpClient.newHttpClient().newWebSocketBuilder()
.header("Authorization", "Bearer sk-syn-...")
// Send ONLY the Authorization header — the beta protocol is retired.
.buildAsync(URI.create("wss://synthorai.io/v1/realtime?model=nova-2-sonic"), new WebSocket.Listener() {
public CompletionStage<?> onText(WebSocket w, CharSequence data, boolean last) {
// handle response.audio.delta (base64 audio out) / response.done here
w.request(1);
return null;
}
}).join();
// configure the session, send input audio, then request a spoken reply
ws.sendText("{\"type\":\"session.update\",\"session\":{\"type\":\"realtime\",\"output_modalities\":[\"audio\"],\"audio\":{\"output\":{\"voice\":\"alloy\"}}}}", true);
ws.sendText("{\"type\":\"input_audio_buffer.append\",\"audio\":\"<base64-pcm16>\"}", true);
ws.sendText("{\"type\":\"input_audio_buffer.commit\"}", true);
ws.sendText("{\"type\":\"response.create\"}", true);Sobre a Amazon
A família Nova da Amazon abrange modelos de texto, multimodais e speech-to-speech. Na Synthorai, a linha speech-to-speech pode ser acessada por meio do mesmo socket em tempo real e chave de qualquer outro provedor, com preços pay-as-you-go em tempo real e sem necessidade de uma conta da Amazon.
Perguntas frequentes
Como consigo uma chave de API da Amazon sem assinatura?
Você não precisa de uma conta da Amazon: cadastre-se na Synthorai, crie uma única chave de API e todos os modelos da Amazon desta página funcionam pelo endpoint compatível com OpenAI, com pagamento por uso e sem assinatura (modelos marcados como "beta por convite" exigem também uma solicitação aprovada).
Quanto custa a API da Amazon?
Os modelos cobrados por token começam em $0.06/M de tokens de entrada; o preço unitário em tempo real de cada modelo está na tabela acima. São preços de tabela do provedor, sem margem da plataforma.
Posso usar minha própria chave da Amazon (BYOK)?
O BYOK ainda não está disponível para a Amazon; as requisições são executadas nos canais gerenciados da Synthorai às tarifas listadas.
Qual é a política de retenção de dados da Amazon via API?
Retenção zero de prompt no gateway por padrão; as políticas de dados da Amazon se aplicam upstream.
Outros provedores