Speech Translate
TranslateStream (WebSocket)
`SpeechToTextTranslate.TranslateStream` for real-time speech translation.
Signature
func (c *TranslateClient) TranslateStream(ctx context.Context, opts ...TranslateStreamOption) (*speech.Stream, error)Options
| Option | Type | Validation |
|---|---|---|
WithModelForTranslateStream | saaras:v2.5|saaras:v3 | strict enum |
WithModeForTranslateStream | transcribe|translate|verbatim|translit|codemix | strict enum |
WithSampleRateForTranslateStream | 8000|16000 | strict enum |
WithAudioCodecForTranslateStream | wav|pcm_s16le|pcm_l16|pcm_raw | strict enum |
WithHighVADSensitivityForTranslateStream | bool | no extra validation |
WithVADSignalsForTranslateStream | bool | no extra validation |
WithFlushSignalForTranslateStream | bool | no extra validation |
Validation behavior
model, when set, must besaaras:v2.5orsaaras:v3.mode, when set, must be one of the five allowed values.sample_rate, when set, must be8000or16000.input_audio_codec, when set, must be one of stream codecs.
Defaults and query params
- stream object uses
16000sample rate when not provided - query keys sent:
model,mode,sample_rate,input_audio_codec,high_vad_sensitivity,vad_signals,flush_signal
Example
stream, err := client.SpeechToTextTranslate.TranslateStream(
ctx,
translate.WithModelForTranslateStream(translate.ModelSaaras),
translate.WithModeForTranslateStream(translate.ModeTranslate),
translate.WithSampleRateForTranslateStream(translate.SampleRate16000),
translate.WithAudioCodecForTranslateStream(translate.CodecWAV),
)
if err != nil {
panic(err)
}
defer stream.Close()
if err := stream.SendAudio(chunk); err != nil {
panic(err)
}
if err := stream.Flush(); err != nil {
panic(err)
}
for stream.Next() {
resp := stream.Current()
_ = resp
}
if err := stream.Err(); err != nil {
panic(err)
}