How Kotoba Brought Realtime Japanese Voice AI to Developers with fal

Industry:
Voice AI
Use-case:
Realtime speech-to-text, text-to-speech, and speech-to-speech translation for Japanese, English, Korean, and Chinese
Results:
Kotoba deploys the Docker image it runs everywhere else to fal, which scales four Koto models on H100 GPUs with demand and sells them to every fal developer as Partner models

Kotoba Technologies builds Koto, a family of foundational voice AI models for a borderless world. Koto has a dedicated model for each task, each optimized for its use case: batch speech recognition, streaming speech recognition, speech synthesis, and simultaneous speech translation. Koto focuses on East Asian languages: on fal, every model supports Japanese, and depending on the task Koto also covers Korean and Chinese, as well as English and Spanish. Koto powers the Japanese conversations in Salesforce’s Agentforce Voice and runs on-premise, on-device, and in the cloud.

Customer Highlights
10x
H100 GPUs per model scaled, added and removed by fal with demand across three US regions
5 days
from the first full staging test on fal to production
4x
Cold start speedup Koto's largest models on a new GPU, after switching to fal's FlashPack weight format and cached compiled kernels
80
live streaming speech-to-text sessions on one H100

The Challenge

Realtime voice leaves no room for slow infrastructure. A translation or spoken reply has to arrive while the speaker is still talking, so every new conversation needs a warm GPU. But traffic rises and falls with business hours and meetings, and a cold H100 takes minutes to load a model this size: a fleet sized for the peak wastes money, and one sized for the average makes users wait. Kotoba also ships model improvements every one to two weeks to its own cloud and AWS, so a platform that needed its own build of each model would slow every release. And offering Koto to developers beyond enterprise contracts would mean building keys, billing, and a playground around every model.

The Solution

Koto runs on fal as four apps on H100 GPUs. Streaming apps hold a WebSocket open and return partial transcripts, translated audio, and synthesized speech as they are generated; batch transcription is a standard HTTP request. Two things make this work: Kotoba’s Docker image is deployed in fal’s runtime, and fal scales it with demand.

One Docker image, a thin wrapper

Koto ships as one GPU image that runs unchanged on Kotoba's own cloud, on AWS, and on fal. There it runs in Direct Server Mode: a small launcher starts the image's own server, and fal routes HTTP and WebSocket traffic straight to it.

One environment variable selects the platform at startup. Set to fal, it enables a gateway layer of about 550 lines that reads the platform's request headers, fetches input audio from its storage, and reports billable units. Request handlers and model code are platform agnostic, so one image carries each model fix to fal and to enterprise deployments.

Each model is one deploy-profile entry: model, serving settings, and app name. One CI workflow builds the image, deploys it to a private staging environment, and promotes the same image to production once benchmarks pass. Adding a model is a new profile entry. Every deploy is a revision, so a rollback is one command that points the app back at the previous revision, with no rebuild.

Private apps for enterprise customers. A customer endpoint is one more profile entry, deployed by the same workflow: the same image with the customer's own model version, such as a domain fine-tune, and its own scale limits. The app stays private or is shared unlisted, the customer calls it with its own key at a customer-specific price, and it can scale to zero between sessions.

Autoscaling for realtime traffic

Each Koto app runs on H100 GPUs in three US regions. fal keeps at least one GPU warm per model, adds GPUs as concurrent sessions grow, up to ten per model, and holds 25% spare capacity warm so a new conversation lands on a ready GPU instead of a cold boot. Idle GPUs shut down after five minutes.

Each GPU serves many conversations at once: Koto's serving engine decodes all active streams in one batched step, and fal routes up to 80 streaming speech-to-text sessions, or 16 speech or translation sessions, to each GPU.

Faster cold boots with FlashPack. A GPU spun up from burst traffic must load the model before it can take a conversation. Kotoba converts its largest recognition and translation models to fal's FlashPack format at publish time and places the weights on a volume ahead of time, so a new GPU never downloads the model after a deployment. With FlashPack and cached compiled kernels, cold boots of these models decreased 75%.

Scaling is a configuration and doesn’t cost a release. fal's autoscaler works from a few numbers per app: minimum warm GPUs, maximum GPUs, spare capacity held ahead of demand, idle timeout, and regions. Kotoba sets starting values in its deploy profile, and anyone on the team can change them on the live app from the dashboard or with one cli command. Changes apply immediately and settings persist, so Kotoba can raise the warm minimum before a known busy period and lower it afterwards so idle GPUs stop costing money.

Built for the marketplace

A Playground for streaming models. fal's Playground sends one request and shows one response, which does not fit a WebSocket model. So each streaming app also exposes a one-shot HTTP route that drives its own WebSocket over loopback, letting developers try streaming Koto in the browser.

Billing by audio, even on WebSockets. HTTP responses carry their billable units in a header. For WebSocket sessions, the app reports units to the billing webhook when the session ends, so callers pay for the audio they send, not for idle connection time.

“We build one Docker image, and fal runs it unchanged. When traffic grows, fal adds H100s; when it drops, they go away. We spend our time on Koto, not on a GPU fleet.”
Machine Learning Engineer, Kotoba Technologies

Serving Koto and selling it are the same step: the deployment that runs Koto is also its storefront, so Kotoba deploys a model once and fal both serves it and lists it for developers. Batch and streaming speech-to-text, text-to-speech, and speech-to-speech translation are live as Partner models on the fal marketplace, each with a playground and an API callable with an existing key. Kotoba sets its own prices in the units its customers think in: per second of audio for transcription and translation, and per 1,000 bytes of text for speech. fal handles keys, billing, and discovery, so Kotoba gets distribution without building a developer platform, and each new Koto version reaches developers as soon as it is deployed.

Four Koto endpoints are live on fal today:

“Developers find Koto on fal, try it in the Playground, and call it with the key they already have. That puts Japanese voice AI in front of builders we would never reach through enterprise sales alone.”
Machine Learning Engineer, Kotoba Technologies

Results

Koto went from its first full staging test on fal to production in five days, with no fal-specific fork of its serving code. All four models have since shipped new versions every one to two weeks, each as the same image Kotoba runs on its other platforms, and an enterprise customer's private app takes one profile entry. Capacity follows demand: fal keeps a warm GPU ready for the next conversation, adds GPUs as sessions grow, and releases them as traffic falls, and the team tunes those limits in seconds from the dashboard or CLI, without a release. Kotoba pays for the GPUs its traffic needs instead of a fleet sized for the peak, and built no API keys, billing system, or developer portal for these APIs.

Customer Highlights
AutoHDR
edits 25% of US real estate listings on fal Serverless.
AutoHDR’s editing models run on fal Serverless, where capacity follows the morning rush of shoots. Photographers get edited listing photos back in about 15 minutes, and a small team ships new versions as deployments, not infrastructure projects.
Bria needed to bring new models to market faster while expanding developer adoption
Bria partnered with fal in 2024 to make its models accessible to developers through fal's inference infrastructure and model marketplace. Today, Bria's engineers can take a model from research-ready to publicly available in days rather than weeks, without managing the underlying GPU infrastructure.
How VEED Brings Its Own Models to Developers with fal
VEED deploys its talking-video models as apps on fal Serverless, which runs them for the VEED editor and lists them in fal’s model gallery the day VEED announces them. Fourteen VEED endpoints are live on fal today.
Kotoba
ships one Docker image, and fal scales its realtime voice models with demand
Kotoba deploys the same Docker image it runs on its own cloud, with a thin wrapper and no fal-specific fork of its serving code. fal scales each Koto model from one to ten H100s as conversations come and go, and the same deployment lists the models as Partner models.

Ready to build with generative media?

Select option
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.