Overview
Kotoba TTS delivers production-grade, low-latency Japanese speech synthesis for conversational AI, content localization, and accessibility products.
Key capabilities:
- Real-time bidirectional streaming over SageMaker HTTP/2, with sub-second time-to-first-audio.
- Production-tuned Japanese voice for natural-sounding conversational speech. 24 kHz mono PCM output in pcm_f32 / pcm16 / float32 codecs.
- Cancel mid-stream with response.cancel; reuse a single session for many response.create turns.
Typical use cases: conversational agents, call-center voicebots, audiobook narration, real-time translation output, and voice-driven UX.
Highlights
- Real-time streaming synthesis with sub-second time-to-first-audio by bidirectional streaming.
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Free trial
Dimension | Description | Cost/host/hour |
|---|---|---|
ml.c4.2xlarge Inference (Batch) Recommended | Model inference on the ml.c4.2xlarge instance type, batch mode | $0.00 |
ml.g6e.8xlarge Inference (Real-Time) Recommended | Model inference on the ml.g6e.8xlarge instance type, real-time mode | $96.00 |
ml.g6e.xlarge Inference (Real-Time) | Model inference on the ml.g6e.xlarge instance type, real-time mode | $96.00 |
ml.g6e.2xlarge Inference (Real-Time) | Model inference on the ml.g6e.2xlarge instance type, real-time mode | $96.00 |
ml.g6e.4xlarge Inference (Real-Time) | Model inference on the ml.g6e.4xlarge instance type, real-time mode | $96.00 |
ml.g6e.16xlarge Inference (Real-Time) | Model inference on the ml.g6e.16xlarge instance type, real-time mode | $96.00 |
ml.g6.xlarge Inference (Real-Time) | Model inference on the ml.g6.xlarge instance type, real-time mode | $48.00 |
ml.g6.2xlarge Inference (Real-Time) | Model inference on the ml.g6.2xlarge instance type, real-time mode | $48.00 |
ml.g6.4xlarge Inference (Real-Time) | Model inference on the ml.g6.4xlarge instance type, real-time mode | $48.00 |
ml.g6.8xlarge Inference (Real-Time) | Model inference on the ml.g6.8xlarge instance type, real-time mode | $48.00 |
Vendor refund policy
n/a
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
Amazon SageMaker model
An Amazon SageMaker model package is a pre-trained machine learning model ready to use without additional training. Use the model package to create a model on Amazon SageMaker for real-time inference or batch processing. Amazon SageMaker is a fully managed platform for building, training, and deploying machine learning models at scale.
Version release notes
v1.6 Update
Faster startup, streaming text↔audio timestamps, and more robust readings
- Faster instance startup: worker warm-up after the container starts was reduced from roughly 100 seconds to about 16 seconds. AWS-side provisioning is unchanged.
- Streaming text↔audio timestamps: with with_timestamps: true on response.create, each audio.chunk carries alignments records ({start, end, text}) mapping the request text to times in the output audio, streamed in real time.
- More robust readings of structured text such as phone numbers and postal addresses.
All v1.4 / v1.5 features are retained.
Additional details
Inputs
- Summary
Kotoba TTS v1.6 accepts text input via SageMaker bidirectional streaming (HTTP/2) at the path /invocations-bidirectional-stream. Standard POST /invocations and batch transform jobs are NOT supported.
A synthesis session is a sequence of JSON events sent over the bidirectional stream:
-
open (required, first event)
- language (string, optional, default ja): ISO-639-1 language code.
- speaker_id (string, optional, default default): preset voice identifier. default is always available; additional preset keys (e.g. man-1, woman-1) may also be shipped with the bundle.
- format (string, optional, default pcm_f32): output audio format. One of pcm_f32 (little-endian float32), pcm_16 (little-endian signed 16-bit), mulaw (8-bit G.711 mu-law), or opus (Ogg/Opus).
- sample_rate (integer, optional, default 24000): output sample rate in Hz. PCM formats (pcm_f32, pcm_16) accept 8000, 16000, or 24000. mulaw is always emitted at 8000 and opus at 24000, so this field is ignored for them. The negotiated format and sample_rate are echoed on session.created.
- spk_ref_audio_tokens (optional): speaker reference tokens for the requested voice.
-
response.create (one synthesis turn; repeatable, and may be sent without waiting for the previous response.done — see Pipelining below)
- text (string, required): the full text to synthesize. The model is one-shot, so the text is not streamed in chunks.
- response_id (string, optional): client-supplied correlation id; echoed on response.queued / response.created / audio.chunk / response.done. Must be unique among outstanding (active or queued) responses, and reusable once its response.done has been delivered. When omitted the server assigns a UUID.
- with_timestamps (boolean, optional, default false): when true, audio.chunk events for this response carry alignments records mapping spans of the request text to times in the output audio (see Model output details).
- max_length (integer, optional): cap on the generated length for this response.
-
response.cancel (optional)
- response_id (string, optional): cancel the response with this id, whether it is the active response or one still queued. Without it, the active response is cancelled.
Pipelining: while a response is active, additional response.create events are accepted with a response.queued event (carrying the same response.id) and synthesized one at a time in FIFO order. The pending queue is bounded by WS_MAX_PENDING_RESPONSES (default 15); exceeding it yields a non-fatal error (too many queued responses).
Each JSON event must be sent as a UTF-8 text frame. With the SageMaker HTTP/2 SDK, construct RequestPayloadPart with data_type="UTF8" so the payload is forwarded as text.
-
- Limitations for input type
- - `open` must arrive within 10 s of connection (`WS_OPEN_TIMEOUT`). - Sessions idle for 60 s are closed (`WS_IDLE_TIMEOUT`); client messages and major server events reset the timer. - `response.create.text` must be a non-empty UTF-8 string. - One response is synthesized at a time; extra requests queue up to `WS_MAX_PENDING_RESPONSES` (default 15), beyond which a non-fatal `error` is returned. - `with_timestamps: true` on a deployment without timestamp support returns the non-fatal `timestamps_unavailable` error; audio is unaffected. - Only bidirectional streaming over HTTP/2 is supported; standard `POST /invocations` and batch transform are not. - Python clients require Python 3.12+ and `aws-sdk-python[sagemaker-runtime-http2]`.
- Input MIME type
- application/json
Support
Vendor support
For support, contact: kotoba_product+marketplace@kotoba.tech
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.