Amazon: Amazon Polly Standard
Amazon Polly's original concatenative text-to-speech engine: 60 voices across 29 language codes, the widest SSML support of the four engines (including prosody pitch, emphasis, whispering and breathing effects), speech marks, and the lowest price and highest throughput (80 TPS) in the family.
プロバイダー
同じモデルを複数のプロバイダーがホストしている場合があります。バックエンドを固定したい場合は1つのプロバイダーを選び、そうでなければルーティングに選択を任せられます。
対応言語
arb
cmn-CN
cy-GB
da-DK
de-DE
en-AU
en-GB
en-GB-WLS
en-IN
en-US
es-ES
es-MX
es-US
fr-CA
fr-FR
hi-IN
is-IS
it-IT
ja-JP
ko-KR
nb-NO
nl-NL
pl-PL
pt-BR
pt-PT
ro-RO
ru-RU
sv-SE
tr-TR
ボイス
機能
Generates spoken audio from text input.
text_to_speech
SynthesizeSpeech (POST /v1/speech) takes the whole text up front and returns the finished audio as the HTTP response body.
synchronous
Upstream only: OutputFormat=json with SpeechMarkTypes returns NDJSON word, sentence, viseme and ssml marks instead of audio, billed at the same per-character rate.
speech_marks
60 voices across 29 language codes, with the bilingual voices also accepting their AdditionalLanguageCodes via LanguageCode.
multilingual
Aditi speaks Indian English (en-IN, default) and Hindi (hi-IN); select the language with LanguageCode.
bilingual_voices
Upstream only: StartSpeechSynthesisTask accepts up to 100,000 billed characters and writes the audio to an S3 bucket, which this platform does not expose.
async_long_text
Upstream only: up to five stored PLS lexicons (LexiconNames) apply per request when their language matches the voice.
pronunciation_lexicons
コード
ElevenLabs SDKでのストリーミングTTS
ElevenLabs SDKをAllModels経由でルーティングし、音声レスポンスをストリーミングします。
import { ElevenLabsClient } from "elevenlabs";
const client = new ElevenLabsClient({
apiKey: process.env.ALLMODELS_API_KEY,
baseUrl: "https://api.allmodels.io/el"
});
const stream = await client.textToSpeech.stream("voice_id", {
text: "I'm sorry, Dave. I'm afraid I can't do that.",
modelId: "amazon/amazon-polly-standard",
outputFormat: "mp3_44100_128"
}, {
queryParams: {
provider: {
"only": [
"amazon"
]
}
}
});
const reader = stream.getReader();
for (;;) {
const { done, value } = await reader.read();
if (done) break;
// Write value to your response, file, or audio playback pipeline.
}
