@livekit/agents 1.0.39 → 1.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +20 -18
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +20 -18
- package/dist/cli.js.map +1 -1
- package/dist/http_server.cjs +9 -6
- package/dist/http_server.cjs.map +1 -1
- package/dist/http_server.d.cts +5 -1
- package/dist/http_server.d.ts +5 -1
- package/dist/http_server.d.ts.map +1 -1
- package/dist/http_server.js +9 -6
- package/dist/http_server.js.map +1 -1
- package/dist/index.cjs +5 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/inference/stt.cjs +2 -1
- package/dist/inference/stt.cjs.map +1 -1
- package/dist/inference/stt.d.ts.map +1 -1
- package/dist/inference/stt.js +2 -1
- package/dist/inference/stt.js.map +1 -1
- package/dist/ipc/supervised_proc.cjs +4 -0
- package/dist/ipc/supervised_proc.cjs.map +1 -1
- package/dist/ipc/supervised_proc.d.cts +1 -0
- package/dist/ipc/supervised_proc.d.ts +1 -0
- package/dist/ipc/supervised_proc.d.ts.map +1 -1
- package/dist/ipc/supervised_proc.js +4 -0
- package/dist/ipc/supervised_proc.js.map +1 -1
- package/dist/llm/realtime.cjs.map +1 -1
- package/dist/llm/realtime.d.cts +5 -1
- package/dist/llm/realtime.d.ts +5 -1
- package/dist/llm/realtime.d.ts.map +1 -1
- package/dist/llm/realtime.js.map +1 -1
- package/dist/tokenize/basic/sentence.cjs +3 -3
- package/dist/tokenize/basic/sentence.cjs.map +1 -1
- package/dist/tokenize/basic/sentence.js +3 -3
- package/dist/tokenize/basic/sentence.js.map +1 -1
- package/dist/tokenize/tokenizer.test.cjs +3 -1
- package/dist/tokenize/tokenizer.test.cjs.map +1 -1
- package/dist/tokenize/tokenizer.test.js +3 -1
- package/dist/tokenize/tokenizer.test.js.map +1 -1
- package/dist/tts/stream_adapter.cjs +15 -1
- package/dist/tts/stream_adapter.cjs.map +1 -1
- package/dist/tts/stream_adapter.d.ts.map +1 -1
- package/dist/tts/stream_adapter.js +15 -1
- package/dist/tts/stream_adapter.js.map +1 -1
- package/dist/tts/tts.cjs.map +1 -1
- package/dist/tts/tts.d.cts +9 -1
- package/dist/tts/tts.d.ts +9 -1
- package/dist/tts/tts.d.ts.map +1 -1
- package/dist/tts/tts.js.map +1 -1
- package/dist/types.cjs +3 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +4 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/dist/voice/agent.cjs +11 -1
- package/dist/voice/agent.cjs.map +1 -1
- package/dist/voice/agent.d.cts +7 -3
- package/dist/voice/agent.d.ts +7 -3
- package/dist/voice/agent.d.ts.map +1 -1
- package/dist/voice/agent.js +11 -1
- package/dist/voice/agent.js.map +1 -1
- package/dist/voice/agent_activity.cjs +30 -14
- package/dist/voice/agent_activity.cjs.map +1 -1
- package/dist/voice/agent_activity.d.cts +1 -0
- package/dist/voice/agent_activity.d.ts +1 -0
- package/dist/voice/agent_activity.d.ts.map +1 -1
- package/dist/voice/agent_activity.js +30 -14
- package/dist/voice/agent_activity.js.map +1 -1
- package/dist/voice/agent_session.cjs +5 -1
- package/dist/voice/agent_session.cjs.map +1 -1
- package/dist/voice/agent_session.d.cts +2 -0
- package/dist/voice/agent_session.d.ts +2 -0
- package/dist/voice/agent_session.d.ts.map +1 -1
- package/dist/voice/agent_session.js +5 -1
- package/dist/voice/agent_session.js.map +1 -1
- package/dist/voice/background_audio.cjs +2 -1
- package/dist/voice/background_audio.cjs.map +1 -1
- package/dist/voice/background_audio.d.cts +4 -2
- package/dist/voice/background_audio.d.ts +4 -2
- package/dist/voice/background_audio.d.ts.map +1 -1
- package/dist/voice/background_audio.js +2 -1
- package/dist/voice/background_audio.js.map +1 -1
- package/dist/voice/generation.cjs +58 -5
- package/dist/voice/generation.cjs.map +1 -1
- package/dist/voice/generation.d.cts +17 -3
- package/dist/voice/generation.d.ts +17 -3
- package/dist/voice/generation.d.ts.map +1 -1
- package/dist/voice/generation.js +63 -6
- package/dist/voice/generation.js.map +1 -1
- package/dist/voice/index.cjs.map +1 -1
- package/dist/voice/index.d.cts +1 -1
- package/dist/voice/index.d.ts +1 -1
- package/dist/voice/index.d.ts.map +1 -1
- package/dist/voice/index.js.map +1 -1
- package/dist/voice/io.cjs +22 -2
- package/dist/voice/io.cjs.map +1 -1
- package/dist/voice/io.d.cts +21 -5
- package/dist/voice/io.d.ts +21 -5
- package/dist/voice/io.d.ts.map +1 -1
- package/dist/voice/io.js +18 -1
- package/dist/voice/io.js.map +1 -1
- package/dist/voice/room_io/_output.cjs +3 -2
- package/dist/voice/room_io/_output.cjs.map +1 -1
- package/dist/voice/room_io/_output.d.cts +3 -3
- package/dist/voice/room_io/_output.d.ts +3 -3
- package/dist/voice/room_io/_output.d.ts.map +1 -1
- package/dist/voice/room_io/_output.js +4 -3
- package/dist/voice/room_io/_output.js.map +1 -1
- package/dist/voice/transcription/synchronizer.cjs +137 -13
- package/dist/voice/transcription/synchronizer.cjs.map +1 -1
- package/dist/voice/transcription/synchronizer.d.cts +34 -4
- package/dist/voice/transcription/synchronizer.d.ts +34 -4
- package/dist/voice/transcription/synchronizer.d.ts.map +1 -1
- package/dist/voice/transcription/synchronizer.js +141 -14
- package/dist/voice/transcription/synchronizer.js.map +1 -1
- package/dist/voice/transcription/synchronizer.test.cjs +151 -0
- package/dist/voice/transcription/synchronizer.test.cjs.map +1 -0
- package/dist/voice/transcription/synchronizer.test.js +150 -0
- package/dist/voice/transcription/synchronizer.test.js.map +1 -0
- package/dist/worker.cjs +12 -2
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +12 -2
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +20 -18
- package/src/http_server.ts +18 -6
- package/src/index.ts +1 -0
- package/src/inference/stt.ts +9 -8
- package/src/ipc/supervised_proc.ts +4 -0
- package/src/llm/realtime.ts +5 -1
- package/src/tokenize/basic/sentence.ts +3 -3
- package/src/tokenize/tokenizer.test.ts +4 -0
- package/src/tts/stream_adapter.ts +23 -1
- package/src/tts/tts.ts +10 -1
- package/src/types.ts +5 -0
- package/src/voice/agent.ts +19 -4
- package/src/voice/agent_activity.ts +38 -13
- package/src/voice/agent_session.ts +6 -0
- package/src/voice/background_audio.ts +6 -3
- package/src/voice/generation.ts +115 -10
- package/src/voice/index.ts +1 -1
- package/src/voice/io.ts +40 -5
- package/src/voice/room_io/_output.ts +6 -5
- package/src/voice/transcription/synchronizer.test.ts +206 -0
- package/src/voice/transcription/synchronizer.ts +202 -17
- package/src/worker.ts +24 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent_activity.d.ts","sourceRoot":"","sources":["../../src/voice/agent_activity.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,GAAG,EACH,aAAa,EAEb,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAazB,OAAO,EAAE,GAAG,EAAiB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAGrE,OAAO,EAAE,GAAG,EAAiB,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,IAAI,EAA0B,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAiB,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EAEtB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent_activity.d.ts","sourceRoot":"","sources":["../../src/voice/agent_activity.ts"],"names":[],"mappings":"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"}
|
|
@@ -248,6 +248,9 @@ class AgentActivity {
|
|
|
248
248
|
get allowInterruptions() {
|
|
249
249
|
return this.agentSession.options.allowInterruptions;
|
|
250
250
|
}
|
|
251
|
+
get useTtsAlignedTranscript() {
|
|
252
|
+
return this.agent.useTtsAlignedTranscript ?? this.agentSession.useTtsAlignedTranscript;
|
|
253
|
+
}
|
|
251
254
|
get turnDetection() {
|
|
252
255
|
return this.agentSession.turnDetection;
|
|
253
256
|
}
|
|
@@ -893,7 +896,7 @@ ${instructions}` : instructions,
|
|
|
893
896
|
} else {
|
|
894
897
|
let audioOut = null;
|
|
895
898
|
if (!audio) {
|
|
896
|
-
const [ttsTask,
|
|
899
|
+
const [ttsTask, ttsGenData] = performTTSInference(
|
|
897
900
|
(...args) => this.agent.ttsNode(...args),
|
|
898
901
|
audioSource,
|
|
899
902
|
modelSettings,
|
|
@@ -901,7 +904,7 @@ ${instructions}` : instructions,
|
|
|
901
904
|
);
|
|
902
905
|
tasks.push(ttsTask);
|
|
903
906
|
const [forwardTask, _audioOut] = performAudioForwarding(
|
|
904
|
-
|
|
907
|
+
ttsGenData.audioStream,
|
|
905
908
|
audioOutput,
|
|
906
909
|
replyAbortController
|
|
907
910
|
);
|
|
@@ -954,7 +957,7 @@ ${instructions}` : instructions,
|
|
|
954
957
|
toolsMessages,
|
|
955
958
|
span
|
|
956
959
|
}) => {
|
|
957
|
-
var _a, _b, _c;
|
|
960
|
+
var _a, _b, _c, _d;
|
|
958
961
|
speechHandle._agentTurnContext = otelContext.active();
|
|
959
962
|
span.setAttribute(traceTypes.ATTR_SPEECH_ID, speechHandle.id);
|
|
960
963
|
if (instructions) {
|
|
@@ -992,12 +995,12 @@ ${instructions}` : instructions,
|
|
|
992
995
|
);
|
|
993
996
|
tasks.push(llmTask);
|
|
994
997
|
let ttsTask = null;
|
|
995
|
-
let
|
|
998
|
+
let ttsGenData = null;
|
|
996
999
|
let llmOutput;
|
|
997
1000
|
if (audioOutput) {
|
|
998
1001
|
const [ttsTextInput, textOutput] = llmGenData.textStream.tee();
|
|
999
1002
|
llmOutput = textOutput;
|
|
1000
|
-
[ttsTask,
|
|
1003
|
+
[ttsTask, ttsGenData] = performTTSInference(
|
|
1001
1004
|
(...args) => this.agent.ttsNode(...args),
|
|
1002
1005
|
ttsTextInput,
|
|
1003
1006
|
modelSettings,
|
|
@@ -1021,7 +1024,20 @@ ${instructions}` : instructions,
|
|
|
1021
1024
|
await speechHandle.waitIfNotInterrupted([speechHandle._waitForAuthorization()]);
|
|
1022
1025
|
speechHandle._clearAuthorization();
|
|
1023
1026
|
const replyStartedAt = Date.now();
|
|
1024
|
-
|
|
1027
|
+
let transcriptionInput = llmOutput;
|
|
1028
|
+
if (this.useTtsAlignedTranscript && ((_a = this.tts) == null ? void 0 : _a.capabilities.alignedTranscript) && ttsGenData) {
|
|
1029
|
+
const timedTextsStream = await Promise.race([
|
|
1030
|
+
ttsGenData.timedTextsFut.await,
|
|
1031
|
+
(ttsTask == null ? void 0 : ttsTask.result.catch(
|
|
1032
|
+
() => this.logger.warn("TTS task failed before resolving timedTextsFut")
|
|
1033
|
+
)) ?? Promise.resolve()
|
|
1034
|
+
]);
|
|
1035
|
+
if (timedTextsStream) {
|
|
1036
|
+
this.logger.debug("Using TTS aligned transcripts for transcription node input");
|
|
1037
|
+
transcriptionInput = timedTextsStream;
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
const trNodeResult = await this.agent.transcriptionNode(transcriptionInput, modelSettings);
|
|
1025
1041
|
let textOut = null;
|
|
1026
1042
|
if (trNodeResult) {
|
|
1027
1043
|
const [textForwardTask, _textOut] = performTextForwarding(
|
|
@@ -1040,9 +1056,9 @@ ${instructions}` : instructions,
|
|
|
1040
1056
|
};
|
|
1041
1057
|
let audioOut = null;
|
|
1042
1058
|
if (audioOutput) {
|
|
1043
|
-
if (
|
|
1059
|
+
if (ttsGenData) {
|
|
1044
1060
|
const [forwardTask, _audioOut] = performAudioForwarding(
|
|
1045
|
-
|
|
1061
|
+
ttsGenData.audioStream,
|
|
1046
1062
|
audioOutput,
|
|
1047
1063
|
replyAbortController
|
|
1048
1064
|
);
|
|
@@ -1050,7 +1066,7 @@ ${instructions}` : instructions,
|
|
|
1050
1066
|
tasks.push(forwardTask);
|
|
1051
1067
|
audioOut.firstFrameFut.await.then((ts) => onFirstFrame(ts)).catch(() => this.logger.debug("firstFrameFut cancelled before first frame"));
|
|
1052
1068
|
} else {
|
|
1053
|
-
throw Error("
|
|
1069
|
+
throw Error("ttsGenData is null when audioOutput is enabled");
|
|
1054
1070
|
}
|
|
1055
1071
|
} else {
|
|
1056
1072
|
textOut == null ? void 0 : textOut.firstTextFut.await.then(() => onFirstFrame()).catch(() => this.logger.debug("firstTextFut cancelled before first frame"));
|
|
@@ -1198,10 +1214,10 @@ ${instructions}` : instructions,
|
|
|
1198
1214
|
this.logger.debug(
|
|
1199
1215
|
{
|
|
1200
1216
|
speechId: speechHandle.id,
|
|
1201
|
-
name: (
|
|
1217
|
+
name: (_b = sanitizedOut.toolCall) == null ? void 0 : _b.name,
|
|
1202
1218
|
args: sanitizedOut.toolCall.args,
|
|
1203
|
-
output: (
|
|
1204
|
-
isError: (
|
|
1219
|
+
output: (_c = sanitizedOut.toolCallOutput) == null ? void 0 : _c.output,
|
|
1220
|
+
isError: (_d = sanitizedOut.toolCallOutput) == null ? void 0 : _d.isError
|
|
1205
1221
|
},
|
|
1206
1222
|
"Tool call execution finished"
|
|
1207
1223
|
);
|
|
@@ -1368,14 +1384,14 @@ ${instructions}` : instructions,
|
|
|
1368
1384
|
if (audioOutput) {
|
|
1369
1385
|
let realtimeAudioResult = null;
|
|
1370
1386
|
if (ttsTextInput) {
|
|
1371
|
-
const [ttsTask,
|
|
1387
|
+
const [ttsTask, ttsGenData] = performTTSInference(
|
|
1372
1388
|
(...args) => this.agent.ttsNode(...args),
|
|
1373
1389
|
ttsTextInput,
|
|
1374
1390
|
modelSettings,
|
|
1375
1391
|
abortController
|
|
1376
1392
|
);
|
|
1377
1393
|
tasks.push(ttsTask);
|
|
1378
|
-
realtimeAudioResult =
|
|
1394
|
+
realtimeAudioResult = ttsGenData.audioStream;
|
|
1379
1395
|
} else if (msgModalities && msgModalities.includes("audio")) {
|
|
1380
1396
|
realtimeAudioResult = await this.agent.realtimeAudioOutputNode(
|
|
1381
1397
|
msg.audioStream,
|