Speech engines you run yourself.
Every Cobalt engine is a protobuf service. Generate a client in your language, point it at your own server, and stream — the audio and the transcripts never leave your infrastructure.
Speech recognition, streaming or batch, with word timings and confusion networks.
rpc StreamingRecognize(stream StreamingRecognizeRequest) returns (stream StreamingRecognizeResponse)
audio → identity
VoiceBio
Speaker enrollment, verification and identification from a voiceprint.
rpc StreamingIdentify(stream StreamingIdentifyRequest) returns (StreamingIdentifyResponse)
text → audio
VoiceGen
Streaming text to speech, synthesized as the text arrives.
rpc StreamingSynthesize(StreamingSynthesizeRequest) returns (stream StreamingSynthesizeResponse)Three steps to a working client
The order matters: you generate stubs from the proto, open a connection to your server, then stream. Transcribe is used here as the example; VoiceBio and VoiceGen follow the same shape.
- step 1
Generate the client
Run buf against the proto definition to get native bindings for your language.
- step 2
Connect to the server
Set the address, pick TLS or insecure, and confirm the server with Version and ListModels.
- step 3
Stream audio
Send a config message, then audio frames, and read results as they come back.
Beyond the engine APIs
- Recognition context Bias Transcribe toward names, places and domain vocabulary.
- Hybrid vs end-to-end Which model architecture fits your latency and accuracy budget.
- Transcribe FAQ Accuracy, audio formats, languages and deployment questions.