From f7228502ee40f43285d6d8253adb7e04c9ba4846 Mon Sep 17 00:00:00 2001 From: "rosetta-livekit-bot[bot]" <282703043+rosetta-livekit-bot[bot]@users.noreply.github.com> Date: Mon, 29 Jun 2026 19:19:01 +0000 Subject: [PATCH] feat(assemblyai): add language code streaming option --- .changeset/assemblyai-language-code.md | 5 +++++ plugins/assemblyai/src/stt.ts | 8 ++++++++ 2 files changed, 13 insertions(+) create mode 100644 .changeset/assemblyai-language-code.md diff --git a/.changeset/assemblyai-language-code.md b/.changeset/assemblyai-language-code.md new file mode 100644 index 000000000..8974c9afc --- /dev/null +++ b/.changeset/assemblyai-language-code.md @@ -0,0 +1,5 @@ +--- +'@livekit/agents-plugin-assemblyai': patch +--- + +Add AssemblyAI streaming language steering via the `languageCode` option. diff --git a/plugins/assemblyai/src/stt.ts b/plugins/assemblyai/src/stt.ts index 8c117c9f7..0d51765a6 100644 --- a/plugins/assemblyai/src/stt.ts +++ b/plugins/assemblyai/src/stt.ts @@ -10,6 +10,7 @@ import { Task, createTimedString, delay, + getBaseLanguage, log, normalizeLanguage, stt, @@ -66,6 +67,8 @@ export interface STTOptions { encoding: STTEncoding; speechModel: STTModels; languageDetection?: boolean; + /** Only supported with the Universal-3 Pro model family. Set at connection time only. */ + languageCode?: string; endOfTurnConfidenceThreshold?: number; /** Minimum silence (ms) before a confident end-of-turn is finalized. */ minTurnSilence?: number; @@ -146,6 +149,7 @@ export class STT extends stt.STT { 'voiceFocus', 'voiceFocusThreshold', 'mode', + 'languageCode', ] as const) { if (opts[param] !== undefined) { throw new Error( @@ -164,12 +168,15 @@ export class STT extends stt.STT { // Minimize latency by default, but let AssemblyAI's mode preset control silence tuning. const minTurnSilence = opts.minTurnSilence ?? (opts.mode === undefined ? 100 : undefined); + const languageCode = + opts.languageCode !== undefined ? getBaseLanguage(opts.languageCode) : undefined; this.#opts = { ...defaultSTTOptions, ...opts, apiKey, minTurnSilence, + languageCode, }; } @@ -325,6 +332,7 @@ export class SpeechStream extends stt.SpeechStream { ? JSON.stringify(this.#opts.keytermsPrompt) : undefined, language_detection: languageDetection, + language_code: this.#opts.languageCode, prompt: this.#opts.prompt, agent_context: this.#opts.agentContext, previous_context_n_turns: this.#opts.previousContextNTurns,