experimental_streamTranslate()

experimental_streamTranslate is an experimental feature.

Streams a speech-to-speech translation from live raw audio. Models translate live source audio into target-language audio and text.

experimental_streamTranslate is built on the speech translation model specification (Experimental_SpeechTranslationModelV4). Provider implementations of the specification ship separately — see your provider's documentation for available translation models.

import { experimental_streamTranslate as streamTranslate } from 'ai';
const result = streamTranslate({
// any provider model instance that implements the experimental
// speech translation model specification (Experimental_SpeechTranslationModelV4):
model: translationModel,
audio: audioStream, // ReadableStream<Uint8Array | string>
inputAudioFormat: { type: 'audio/pcm', rate: 24000 },
targetLanguage: 'es',
});
for await (const part of result.fullStream) {
if (part.type === 'output-text-delta') {
process.stdout.write(part.delta);
}
}
console.log(await result.translationText);

Import

import { experimental_streamTranslate as streamTranslate } from "ai"

API Signature

Parameters

model:

Experimental_SpeechTranslationModelV4

audio:

ReadableStream<Uint8Array | string>

inputAudioFormat:

{ type: string; rate?: number }

targetLanguage:

string

sourceLanguage?:

string

outputAudioFormat?:

{ type: string; rate?: number }

providerOptions?:

Record<string, JSONObject>

abortSignal?:

AbortSignal

headers?:

Record<string, string>

includeRawChunks?:

boolean

Returns

fullStream:

AsyncIterableStream<TranslationStreamPart>

sourceText:

Promise<string>

translationText:

Promise<string>

durationInSeconds:

Promise<number | undefined>

usage:

Promise<Experimental_SpeechTranslationModelV4Usage | undefined>

warnings:

Promise<Warning[]>

response:

Promise<SpeechTranslationModelResponseMetadata>

providerMetadata:

Promise<Record<string, JSONObject>>

The result promises settle as the stream is consumed. If you stop consuming fullStream early (e.g. break out of the loop), the underlying provider connection is closed and pending result promises reject.