@mentra/engine 3.2.1-dev.278 → 3.2.1-dev.282
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/build/generated/releaseMetadata.js +5 -5
- package/build/generated/releaseMetadata.js.map +1 -1
- package/build/services/AcsMeetingService.d.ts +56 -6
- package/build/services/AcsMeetingService.d.ts.map +1 -1
- package/build/services/AcsMeetingService.js +162 -40
- package/build/services/AcsMeetingService.js.map +1 -1
- package/build/services/CallGainSweep.d.ts +97 -0
- package/build/services/CallGainSweep.d.ts.map +1 -0
- package/build/services/CallGainSweep.js +249 -0
- package/build/services/CallGainSweep.js.map +1 -0
- package/build/services/GlassesMicProbe.d.ts +2 -0
- package/build/services/GlassesMicProbe.d.ts.map +1 -1
- package/build/services/GlassesMicProbe.js +20 -19
- package/build/services/GlassesMicProbe.js.map +1 -1
- package/build/services/LocalMiniappRuntime.d.ts +18 -0
- package/build/services/LocalMiniappRuntime.d.ts.map +1 -1
- package/build/services/LocalMiniappRuntime.js +131 -1
- package/build/services/LocalMiniappRuntime.js.map +1 -1
- package/build/services/MicSessionManager.d.ts +83 -0
- package/build/services/MicSessionManager.d.ts.map +1 -0
- package/build/services/MicSessionManager.js +201 -0
- package/build/services/MicSessionManager.js.map +1 -0
- package/build/services/MicStateCoordinator.d.ts +71 -5
- package/build/services/MicStateCoordinator.d.ts.map +1 -1
- package/build/services/MicStateCoordinator.js +161 -10
- package/build/services/MicStateCoordinator.js.map +1 -1
- package/build/services/micPolicy.d.ts +131 -0
- package/build/services/micPolicy.d.ts.map +1 -0
- package/build/services/micPolicy.js +140 -0
- package/build/services/micPolicy.js.map +1 -0
- package/build/stores/bluetoothSettingKeys.d.ts.map +1 -1
- package/build/stores/bluetoothSettingKeys.js +3 -0
- package/build/stores/bluetoothSettingKeys.js.map +1 -1
- package/build/stores/settings.d.ts +5 -0
- package/build/stores/settings.d.ts.map +1 -1
- package/build/stores/settings.js +62 -0
- package/build/stores/settings.js.map +1 -1
- package/build/utils/pcm16.d.ts +20 -0
- package/build/utils/pcm16.d.ts.map +1 -1
- package/build/utils/pcm16.js +32 -1
- package/build/utils/pcm16.js.map +1 -1
- package/package.json +8 -8
- package/src/generated/releaseMetadata.ts +5 -5
- package/src/services/AcsMeetingService.ts +167 -40
- package/src/services/CallGainSweep.ts +318 -0
- package/src/services/GlassesMicProbe.ts +20 -17
- package/src/services/LocalMiniappRuntime.ts +152 -3
- package/src/services/MicSessionManager.ts +258 -0
- package/src/services/MicStateCoordinator.ts +153 -10
- package/src/services/micPolicy.ts +198 -0
- package/src/stores/bluetoothSettingKeys.ts +3 -0
- package/src/stores/settings.ts +66 -0
- package/src/utils/pcm16.ts +43 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const ENGINE_RELEASE_METADATA = Object.freeze({
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"familyBaseVersion": "3.2.1",
|
|
4
|
-
"releaseIdentity": "3.2.1-dev.
|
|
5
|
-
"releaseSetId": "mentra-3.2.1-dev.
|
|
6
|
-
"sourceCommit": "
|
|
7
|
-
"otaManifestUrl": "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-dev.
|
|
8
|
-
"otaManifestSha256": "
|
|
4
|
+
"releaseIdentity": "3.2.1-dev.282",
|
|
5
|
+
"releaseSetId": "mentra-3.2.1-dev.282",
|
|
6
|
+
"sourceCommit": "53defbe045377507bdd6c188d303be138040c450",
|
|
7
|
+
"otaManifestUrl": "https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-dev.282.json",
|
|
8
|
+
"otaManifestSha256": "c69e779261aac872c9b0a26abbdb2d7e6549db577ee4bf0755adf770d8f879f6"
|
|
9
9
|
});
|
|
10
10
|
//# sourceMappingURL=releaseMetadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/generated/releaseMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,uBAAuB,GAAoC,MAAM,CAAC,MAAM,CAAC;IACpF,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,eAAe;IAClC,cAAc,EAAE,sBAAsB;IACtC,cAAc,EAAE,0CAA0C;IAC1D,gBAAgB,EAAE,iIAAiI;IACnJ,mBAAmB,EAAE,kEAAkE;CACxF,CAAC,CAAA","sourcesContent":["/** Generated by release CI. Do not edit in a release checkout. */\nexport interface EngineReleaseMetadata {\n schemaVersion: 1\n familyBaseVersion: string | null\n releaseIdentity: string | null\n releaseSetId: string | null\n sourceCommit: string | null\n otaManifestUrl: string | null\n otaManifestSha256: string | null\n}\n\nexport const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({\n \"schemaVersion\": 1,\n \"familyBaseVersion\": \"3.2.1\",\n \"releaseIdentity\": \"3.2.1-dev.
|
|
1
|
+
{"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/generated/releaseMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,uBAAuB,GAAoC,MAAM,CAAC,MAAM,CAAC;IACpF,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,eAAe;IAClC,cAAc,EAAE,sBAAsB;IACtC,cAAc,EAAE,0CAA0C;IAC1D,gBAAgB,EAAE,iIAAiI;IACnJ,mBAAmB,EAAE,kEAAkE;CACxF,CAAC,CAAA","sourcesContent":["/** Generated by release CI. Do not edit in a release checkout. */\nexport interface EngineReleaseMetadata {\n schemaVersion: 1\n familyBaseVersion: string | null\n releaseIdentity: string | null\n releaseSetId: string | null\n sourceCommit: string | null\n otaManifestUrl: string | null\n otaManifestSha256: string | null\n}\n\nexport const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({\n \"schemaVersion\": 1,\n \"familyBaseVersion\": \"3.2.1\",\n \"releaseIdentity\": \"3.2.1-dev.282\",\n \"releaseSetId\": \"mentra-3.2.1-dev.282\",\n \"sourceCommit\": \"53defbe045377507bdd6c188d303be138040c450\",\n \"otaManifestUrl\": \"https://artifactscdn.mentraglass.com/Mentra-Community/MentraOS/releases/mentra-builds-v3.2.1/mentra-live-ota-3.2.1-dev.282.json\",\n \"otaManifestSha256\": \"c69e779261aac872c9b0a26abbdb2d7e6549db577ee4bf0755adf770d8f879f6\"\n})\n"]}
|
|
@@ -128,6 +128,8 @@ export declare function glassesLc3UplinkSupported(args: {
|
|
|
128
128
|
audioSource: AcsAudioSource;
|
|
129
129
|
hasPushOutgoingPcm: boolean;
|
|
130
130
|
platform: string;
|
|
131
|
+
/** Somebody holds a glasses microphone session through MicSessionManager. */
|
|
132
|
+
glassesSession: boolean;
|
|
131
133
|
}): boolean;
|
|
132
134
|
export declare function parseMeetingParticipants(raw: unknown): MeetingParticipant[] | undefined;
|
|
133
135
|
export type AcsOutgoingVideo = {
|
|
@@ -375,6 +377,17 @@ declare class AcsMeetingService {
|
|
|
375
377
|
private callOrigin;
|
|
376
378
|
private micTransport;
|
|
377
379
|
private micSub;
|
|
380
|
+
/** Backstop lease, held only while this call is actually reading the glasses mic. */
|
|
381
|
+
private micSession;
|
|
382
|
+
private micTuningSub;
|
|
383
|
+
private micRmsSub;
|
|
384
|
+
/** Only turn telemetry off again if this call is what turned it on. */
|
|
385
|
+
private micRmsEnabled;
|
|
386
|
+
private gateSamples;
|
|
387
|
+
private gateClosed;
|
|
388
|
+
private gateElevated;
|
|
389
|
+
private gateClosedElevated;
|
|
390
|
+
private gateRmsMax;
|
|
378
391
|
/** True between the pin/requirement being taken and released, so release is exactly once. */
|
|
379
392
|
private micUplinkActive;
|
|
380
393
|
private micFramesForwarded;
|
|
@@ -512,6 +525,12 @@ declare class AcsMeetingService {
|
|
|
512
525
|
displayName?: string;
|
|
513
526
|
video?: AcsOutgoingVideo;
|
|
514
527
|
origin?: AcsCallOrigin;
|
|
528
|
+
/**
|
|
529
|
+
* Whether the caller holds a glasses microphone session. The uplink is the wearer's voice,
|
|
530
|
+
* so it is only taken off the glasses when somebody has actually claimed that microphone
|
|
531
|
+
* through MicSessionManager; this class never claims it itself.
|
|
532
|
+
*/
|
|
533
|
+
glassesSession?: boolean;
|
|
515
534
|
}): Promise<MeetingState>;
|
|
516
535
|
leave(packageName: string): Promise<void>;
|
|
517
536
|
/**
|
|
@@ -557,15 +576,46 @@ declare class AcsMeetingService {
|
|
|
557
576
|
/**
|
|
558
577
|
* Start forwarding the glasses microphone into ACS for this call.
|
|
559
578
|
*
|
|
560
|
-
*
|
|
561
|
-
*
|
|
562
|
-
* the
|
|
563
|
-
*
|
|
564
|
-
*
|
|
579
|
+
* This class is a sink: it never names a gain, a pin or a setting. It does take a semantic
|
|
580
|
+
* voice_call lease first, because reading the glasses mic without one is what put this call on
|
|
581
|
+
* the OS default of VAD-on — a speech gate that drops the wearer's uplink whenever the GX8002
|
|
582
|
+
* disagrees, which during a call is most of the time the far end is talking. The lease is a
|
|
583
|
+
* backstop: when the miniapp already holds one this simply merges with it, and micPolicy still
|
|
584
|
+
* decides what voice_call means for the hardware.
|
|
585
|
+
*
|
|
586
|
+
* `generation` is captured by the listener so a frame that lands after this call ended is
|
|
587
|
+
* dropped rather than pushed at a native session that has left the meeting.
|
|
565
588
|
*/
|
|
566
589
|
private startGlassesMicUplink;
|
|
567
|
-
/**
|
|
590
|
+
/**
|
|
591
|
+
* Stop reading the glasses microphone. Safe to call when this call never started.
|
|
592
|
+
*
|
|
593
|
+
* Only this call's own backstop lease is dropped. A lease the miniapp took is its to release,
|
|
594
|
+
* and letting go of ours before that owner releases is what keeps a normal hang-up from looking
|
|
595
|
+
* like the wearer's microphone disappearing.
|
|
596
|
+
*/
|
|
568
597
|
private stopGlassesMicUplink;
|
|
598
|
+
/**
|
|
599
|
+
* Watch what the glasses are actually running for the length of the call.
|
|
600
|
+
*
|
|
601
|
+
* Two different questions, both unanswerable from this side otherwise. `mic_tuning_state` is
|
|
602
|
+
* the post-clamp reply, so it catches a profile the firmware rewrote rather than accepted.
|
|
603
|
+
* `mic_rms` carries the Barrier's own verdict per frame, which is the only way to tell a gate
|
|
604
|
+
* that is suppressing speaker leak from one that is suppressing the wearer.
|
|
605
|
+
*/
|
|
606
|
+
private startMicGateTelemetry;
|
|
607
|
+
private stopMicGateTelemetry;
|
|
608
|
+
/** Barrier's behaviour over the window, as percentages a listening test can be checked against. */
|
|
609
|
+
private gateSummary;
|
|
610
|
+
/**
|
|
611
|
+
* Guarantee a voice_call session for as long as this call reads the glasses mic.
|
|
612
|
+
*
|
|
613
|
+
* The miniapp asking for one is the intended path; this covers the builds where it cannot,
|
|
614
|
+
* because a bundled Call that predates MIC_ACQUIRE joins anyway rather than failing. Without
|
|
615
|
+
* this the uplink runs under whatever the OS settings say, and the shipped default is VAD-on.
|
|
616
|
+
*/
|
|
617
|
+
private acquireMicSession;
|
|
618
|
+
private releaseMicSession;
|
|
569
619
|
/**
|
|
570
620
|
* Report a call whose pinned microphone stopped delivering. There is deliberately no fallback:
|
|
571
621
|
* the wearer agreed to be heard from the glasses, and quietly switching to the phone in the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcsMeetingService.d.ts","sourceRoot":"","sources":["../../src/services/AcsMeetingService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AcsMeetingService.d.ts","sourceRoot":"","sources":["../../src/services/AcsMeetingService.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,12 @@
|
|
|
6
6
|
import { Platform } from "react-native";
|
|
7
7
|
import BluetoothSdk from "@mentra/bluetooth-sdk/internal";
|
|
8
8
|
import audioPlaybackService from "./AudioPlaybackService";
|
|
9
|
+
import { getCallGainSweep } from "./CallGainSweep";
|
|
9
10
|
import micStateCoordinator from "./MicStateCoordinator";
|
|
11
|
+
import micSessionManager from "./MicSessionManager";
|
|
12
|
+
import { ENGINE_OWNER_PREFIX } from "./micPolicy";
|
|
10
13
|
import { SETTINGS, useSettingsStore } from "../stores/settings";
|
|
11
|
-
import { Pcm16LevelMeter } from "../utils/pcm16";
|
|
14
|
+
import { Pcm16LevelMeter, pcm16WindowStats } from "../utils/pcm16";
|
|
12
15
|
import { softapTrace, softapTraceFailure, softapTraceId } from "../utils/softapTrace";
|
|
13
16
|
import { ACS_CALL_MIC } from "./acsAudioSource";
|
|
14
17
|
export { ACS_CALL_MIC };
|
|
@@ -102,6 +105,10 @@ let softapBleLc3UplinkForTests = null;
|
|
|
102
105
|
export function glassesLc3UplinkSupported(args) {
|
|
103
106
|
if (!(softapBleLc3UplinkForTests ?? SOFTAP_BLE_LC3_UPLINK))
|
|
104
107
|
return false;
|
|
108
|
+
// The microphone belongs to whoever leased it. Without a lease nothing has pinned the glasses
|
|
109
|
+
// or claimed raw PCM, so this call has no wearer audio to read off them.
|
|
110
|
+
if (!args.glassesSession)
|
|
111
|
+
return false;
|
|
105
112
|
// iOS has no `setMicSourcePin` yet, so it cannot promise the phone microphone stays shut.
|
|
106
113
|
if (args.platform !== "android")
|
|
107
114
|
return false;
|
|
@@ -285,6 +292,8 @@ const GLASSES_MIC_SOURCE = "glasses";
|
|
|
285
292
|
const GLASSES_MIC_GRACE_MS = 1000;
|
|
286
293
|
/** Cadence of the uplink health line, matching the native P8 ladder. */
|
|
287
294
|
const MIC_UPLINK_LOG_INTERVAL_MS = 5000;
|
|
295
|
+
/** During a gain sweep, one-second windows so each 25 s phase has enough speech samples. */
|
|
296
|
+
const MIC_UPLINK_SWEEP_LOG_INTERVAL_MS = 1000;
|
|
288
297
|
/** A 50 ms LC3 frame arriving more than this late is a missed beat, not jitter. */
|
|
289
298
|
const MIC_GAP_WARN_MS = 90;
|
|
290
299
|
/**
|
|
@@ -358,6 +367,17 @@ class AcsMeetingService {
|
|
|
358
367
|
callOrigin = "unknown";
|
|
359
368
|
micTransport = "whip";
|
|
360
369
|
micSub = null;
|
|
370
|
+
/** Backstop lease, held only while this call is actually reading the glasses mic. */
|
|
371
|
+
micSession = null;
|
|
372
|
+
micTuningSub = null;
|
|
373
|
+
micRmsSub = null;
|
|
374
|
+
/** Only turn telemetry off again if this call is what turned it on. */
|
|
375
|
+
micRmsEnabled = false;
|
|
376
|
+
gateSamples = 0;
|
|
377
|
+
gateClosed = 0;
|
|
378
|
+
gateElevated = 0;
|
|
379
|
+
gateClosedElevated = 0;
|
|
380
|
+
gateRmsMax = 0;
|
|
361
381
|
/** True between the pin/requirement being taken and released, so release is exactly once. */
|
|
362
382
|
micUplinkActive = false;
|
|
363
383
|
micFramesForwarded = 0;
|
|
@@ -721,6 +741,7 @@ class AcsMeetingService {
|
|
|
721
741
|
audioSource: resolved.source,
|
|
722
742
|
hasPushOutgoingPcm: typeof native.pushOutgoingPcm === "function",
|
|
723
743
|
platform: Platform.OS,
|
|
744
|
+
glassesSession: args.glassesSession ?? false,
|
|
724
745
|
});
|
|
725
746
|
this.micTransport = lc3Uplink ? "ble-lc3" : resolved.source === "phone" ? "phone" : "whip";
|
|
726
747
|
this.bindNative(native, packageName);
|
|
@@ -1017,11 +1038,15 @@ class AcsMeetingService {
|
|
|
1017
1038
|
/**
|
|
1018
1039
|
* Start forwarding the glasses microphone into ACS for this call.
|
|
1019
1040
|
*
|
|
1020
|
-
*
|
|
1021
|
-
*
|
|
1022
|
-
* the
|
|
1023
|
-
*
|
|
1024
|
-
*
|
|
1041
|
+
* This class is a sink: it never names a gain, a pin or a setting. It does take a semantic
|
|
1042
|
+
* voice_call lease first, because reading the glasses mic without one is what put this call on
|
|
1043
|
+
* the OS default of VAD-on — a speech gate that drops the wearer's uplink whenever the GX8002
|
|
1044
|
+
* disagrees, which during a call is most of the time the far end is talking. The lease is a
|
|
1045
|
+
* backstop: when the miniapp already holds one this simply merges with it, and micPolicy still
|
|
1046
|
+
* decides what voice_call means for the hardware.
|
|
1047
|
+
*
|
|
1048
|
+
* `generation` is captured by the listener so a frame that lands after this call ended is
|
|
1049
|
+
* dropped rather than pushed at a native session that has left the meeting.
|
|
1025
1050
|
*/
|
|
1026
1051
|
startGlassesMicUplink(generation) {
|
|
1027
1052
|
if (this.micTransport !== "ble-lc3")
|
|
@@ -1042,11 +1067,9 @@ class AcsMeetingService {
|
|
|
1042
1067
|
this.micLevel.take();
|
|
1043
1068
|
this.lastMicLevel = null;
|
|
1044
1069
|
try {
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
});
|
|
1070
|
+
this.acquireMicSession();
|
|
1071
|
+
this.startMicGateTelemetry();
|
|
1048
1072
|
this.micUplinkActive = true;
|
|
1049
|
-
micStateCoordinator.setCallRequirement(true);
|
|
1050
1073
|
this.micSub = BluetoothSdk.addListener("mic_pcm", (event) => {
|
|
1051
1074
|
if (generation !== this.callGeneration) {
|
|
1052
1075
|
this.micDropsStale += 1;
|
|
@@ -1096,28 +1119,132 @@ class AcsMeetingService {
|
|
|
1096
1119
|
this.markMicTransportNone();
|
|
1097
1120
|
}
|
|
1098
1121
|
}
|
|
1099
|
-
/**
|
|
1122
|
+
/**
|
|
1123
|
+
* Stop reading the glasses microphone. Safe to call when this call never started.
|
|
1124
|
+
*
|
|
1125
|
+
* Only this call's own backstop lease is dropped. A lease the miniapp took is its to release,
|
|
1126
|
+
* and letting go of ours before that owner releases is what keeps a normal hang-up from looking
|
|
1127
|
+
* like the wearer's microphone disappearing.
|
|
1128
|
+
*/
|
|
1100
1129
|
stopGlassesMicUplink() {
|
|
1101
1130
|
this.micSub?.remove();
|
|
1102
1131
|
this.micSub = null;
|
|
1132
|
+
this.releaseMicSession();
|
|
1103
1133
|
if (this.micUplinkActive) {
|
|
1104
1134
|
this.micUplinkActive = false;
|
|
1105
|
-
micStateCoordinator.setCallRequirement(false);
|
|
1106
|
-
// Last, and unconditionally: while the pin is set no other consumer can pick a microphone,
|
|
1107
|
-
// so leaving it behind would leave captions and the cloud uplink stuck on the glasses.
|
|
1108
|
-
void Promise.resolve(BluetoothSdk.setMicSourcePin?.(null)).catch((error) => {
|
|
1109
|
-
console.warn("[AcsMeeting] releasing the glasses microphone pin failed", error);
|
|
1110
|
-
});
|
|
1111
1135
|
console.log("[AcsMeeting] phase=glasses-mic-uplink-stop", {
|
|
1112
1136
|
frames: this.micFramesForwarded,
|
|
1113
1137
|
dropsStale: this.micDropsStale,
|
|
1114
1138
|
dropsNonGlasses: this.micDropsNonGlasses,
|
|
1115
1139
|
gaps: this.micGaps,
|
|
1116
1140
|
gapMsMax: this.micGapMsMax,
|
|
1141
|
+
...this.gateSummary(),
|
|
1117
1142
|
});
|
|
1118
1143
|
}
|
|
1144
|
+
this.stopMicGateTelemetry();
|
|
1119
1145
|
this.micTransport = "whip";
|
|
1120
1146
|
}
|
|
1147
|
+
/**
|
|
1148
|
+
* Watch what the glasses are actually running for the length of the call.
|
|
1149
|
+
*
|
|
1150
|
+
* Two different questions, both unanswerable from this side otherwise. `mic_tuning_state` is
|
|
1151
|
+
* the post-clamp reply, so it catches a profile the firmware rewrote rather than accepted.
|
|
1152
|
+
* `mic_rms` carries the Barrier's own verdict per frame, which is the only way to tell a gate
|
|
1153
|
+
* that is suppressing speaker leak from one that is suppressing the wearer.
|
|
1154
|
+
*/
|
|
1155
|
+
startMicGateTelemetry() {
|
|
1156
|
+
this.gateSamples = 0;
|
|
1157
|
+
this.gateClosed = 0;
|
|
1158
|
+
this.gateElevated = 0;
|
|
1159
|
+
this.gateClosedElevated = 0;
|
|
1160
|
+
this.gateRmsMax = 0;
|
|
1161
|
+
try {
|
|
1162
|
+
this.micTuningSub = BluetoothSdk.addListener("mic_tuning_state", (event) => {
|
|
1163
|
+
console.log("[AcsMeeting] phase=glasses-mic-tuning-applied", event);
|
|
1164
|
+
});
|
|
1165
|
+
this.micRmsSub = BluetoothSdk.addListener("mic_rms", (event) => {
|
|
1166
|
+
this.gateSamples += 1;
|
|
1167
|
+
if (event.gateOpen === false)
|
|
1168
|
+
this.gateClosed += 1;
|
|
1169
|
+
if (event.speakerElevated) {
|
|
1170
|
+
this.gateElevated += 1;
|
|
1171
|
+
if (event.gateOpen === false)
|
|
1172
|
+
this.gateClosedElevated += 1;
|
|
1173
|
+
}
|
|
1174
|
+
if (typeof event.rms === "number" && event.rms > this.gateRmsMax)
|
|
1175
|
+
this.gateRmsMax = event.rms;
|
|
1176
|
+
});
|
|
1177
|
+
void Promise.resolve(BluetoothSdk.setMicRmsTelemetry?.(true))
|
|
1178
|
+
.then(() => {
|
|
1179
|
+
this.micRmsEnabled = true;
|
|
1180
|
+
})
|
|
1181
|
+
.catch((error) => console.warn("[AcsMeeting] mic RMS telemetry unavailable", error));
|
|
1182
|
+
void Promise.resolve(BluetoothSdk.requestMicTuningState?.()).catch(() => { });
|
|
1183
|
+
}
|
|
1184
|
+
catch (error) {
|
|
1185
|
+
console.warn("[AcsMeeting] mic gate telemetry unavailable", error);
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
stopMicGateTelemetry() {
|
|
1189
|
+
this.micTuningSub?.remove();
|
|
1190
|
+
this.micTuningSub = null;
|
|
1191
|
+
this.micRmsSub?.remove();
|
|
1192
|
+
this.micRmsSub = null;
|
|
1193
|
+
if (!this.micRmsEnabled)
|
|
1194
|
+
return;
|
|
1195
|
+
this.micRmsEnabled = false;
|
|
1196
|
+
// Super Mode may have the readout open behind this call; it re-requests on focus.
|
|
1197
|
+
void Promise.resolve(BluetoothSdk.setMicRmsTelemetry?.(false)).catch(() => { });
|
|
1198
|
+
}
|
|
1199
|
+
/** Barrier's behaviour over the window, as percentages a listening test can be checked against. */
|
|
1200
|
+
gateSummary() {
|
|
1201
|
+
if (this.gateSamples === 0)
|
|
1202
|
+
return {};
|
|
1203
|
+
const pct = (n, of) => (of === 0 ? 0 : Math.round((n / of) * 1000) / 10);
|
|
1204
|
+
return {
|
|
1205
|
+
gateSamples: this.gateSamples,
|
|
1206
|
+
gateClosedPct: pct(this.gateClosed, this.gateSamples),
|
|
1207
|
+
speakerElevatedPct: pct(this.gateElevated, this.gateSamples),
|
|
1208
|
+
// The number that matters: closed while the far end was quiet means the wearer was cut.
|
|
1209
|
+
gateClosedQuietPct: pct(this.gateClosed - this.gateClosedElevated, this.gateSamples - this.gateElevated),
|
|
1210
|
+
gateRmsMax: this.gateRmsMax,
|
|
1211
|
+
};
|
|
1212
|
+
}
|
|
1213
|
+
/**
|
|
1214
|
+
* Guarantee a voice_call session for as long as this call reads the glasses mic.
|
|
1215
|
+
*
|
|
1216
|
+
* The miniapp asking for one is the intended path; this covers the builds where it cannot,
|
|
1217
|
+
* because a bundled Call that predates MIC_ACQUIRE joins anyway rather than failing. Without
|
|
1218
|
+
* this the uplink runs under whatever the OS settings say, and the shipped default is VAD-on.
|
|
1219
|
+
*/
|
|
1220
|
+
acquireMicSession() {
|
|
1221
|
+
if (this.micSession)
|
|
1222
|
+
return;
|
|
1223
|
+
try {
|
|
1224
|
+
this.micSession = micSessionManager.acquire({
|
|
1225
|
+
owner: `${ENGINE_OWNER_PREFIX}acs-uplink`,
|
|
1226
|
+
source: "glasses",
|
|
1227
|
+
useCase: "voice_call",
|
|
1228
|
+
});
|
|
1229
|
+
}
|
|
1230
|
+
catch (error) {
|
|
1231
|
+
// A source conflict means something else already owns the microphone. Forwarding whatever
|
|
1232
|
+
// it captures is still better than dropping the wearer from the call.
|
|
1233
|
+
console.warn("[AcsMeeting] glasses mic session unavailable", error);
|
|
1234
|
+
}
|
|
1235
|
+
}
|
|
1236
|
+
releaseMicSession() {
|
|
1237
|
+
const session = this.micSession;
|
|
1238
|
+
if (!session)
|
|
1239
|
+
return;
|
|
1240
|
+
this.micSession = null;
|
|
1241
|
+
try {
|
|
1242
|
+
session.release();
|
|
1243
|
+
}
|
|
1244
|
+
catch (error) {
|
|
1245
|
+
console.warn("[AcsMeeting] releasing the glasses mic session failed", error);
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1121
1248
|
/**
|
|
1122
1249
|
* Report a call whose pinned microphone stopped delivering. There is deliberately no fallback:
|
|
1123
1250
|
* the wearer agreed to be heard from the glasses, and quietly switching to the phone in the
|
|
@@ -1147,43 +1274,38 @@ class AcsMeetingService {
|
|
|
1147
1274
|
logMicUplink() {
|
|
1148
1275
|
const now = Date.now();
|
|
1149
1276
|
const elapsed = now - this.lastMicUplinkLogAt;
|
|
1150
|
-
|
|
1277
|
+
const sweep = getCallGainSweep();
|
|
1278
|
+
const interval = sweep.isActive() ? MIC_UPLINK_SWEEP_LOG_INTERVAL_MS : MIC_UPLINK_LOG_INTERVAL_MS;
|
|
1279
|
+
if (elapsed < interval)
|
|
1151
1280
|
return;
|
|
1152
1281
|
this.lastMicUplinkLogAt = now;
|
|
1153
1282
|
// Level, not just cadence: a 20 Hz stream of the noise floor and a 20 Hz stream of speech
|
|
1154
1283
|
// have the same framesPerSecond. Quiet room on Mentra Live LC3 is meanAbs ≈30–60.
|
|
1155
1284
|
const level = this.micLevel.take();
|
|
1285
|
+
const stats = pcm16WindowStats(level);
|
|
1156
1286
|
this.lastMicLevel = { meanAbs: level.meanAbs, peak: level.peak };
|
|
1287
|
+
const gain = sweep.currentGain() ?? micStateCoordinator.getSessionMicTuning()?.gain ?? null;
|
|
1288
|
+
if (sweep.isActive())
|
|
1289
|
+
sweep.ingest(level);
|
|
1157
1290
|
console.log("[AcsMeeting] phase=glasses-mic-uplink", {
|
|
1158
1291
|
framesPerSecond: Math.round((this.micFramesWindow * 1000) / elapsed),
|
|
1159
1292
|
frames: this.micFramesForwarded,
|
|
1160
|
-
meanAbs:
|
|
1161
|
-
peak:
|
|
1293
|
+
meanAbs: stats.meanAbs,
|
|
1294
|
+
peak: stats.peak,
|
|
1295
|
+
peakPct: stats.peakPct,
|
|
1296
|
+
clipped: stats.clipped,
|
|
1297
|
+
clipPct: stats.clipPct,
|
|
1298
|
+
nearClip: stats.nearClip,
|
|
1299
|
+
nearClipPct: stats.nearClipPct,
|
|
1300
|
+
gain,
|
|
1301
|
+
barrier: micStateCoordinator.getSessionLoudnessGate(),
|
|
1302
|
+
sweep: sweep.currentLabel(),
|
|
1162
1303
|
dropsStale: this.micDropsStale,
|
|
1163
1304
|
dropsNonGlasses: this.micDropsNonGlasses,
|
|
1164
1305
|
gaps: this.micGaps,
|
|
1165
1306
|
gapMsMax: this.micGapMsMax,
|
|
1307
|
+
...this.gateSummary(),
|
|
1166
1308
|
});
|
|
1167
|
-
// #region agent log
|
|
1168
|
-
fetch("http://127.0.0.1:7905/ingest/5a9713c9-45ff-4d09-9435-2adc5db5e91d", {
|
|
1169
|
-
method: "POST",
|
|
1170
|
-
headers: { "Content-Type": "application/json", "X-Debug-Session-Id": "828181" },
|
|
1171
|
-
body: JSON.stringify({
|
|
1172
|
-
sessionId: "828181",
|
|
1173
|
-
runId: "run1",
|
|
1174
|
-
hypothesisId: "E",
|
|
1175
|
-
location: "AcsMeetingService.ts:logMicUplink",
|
|
1176
|
-
message: "phone decoded glasses PCM window",
|
|
1177
|
-
data: {
|
|
1178
|
-
fps: Math.round((this.micFramesWindow * 1000) / elapsed),
|
|
1179
|
-
meanAbs: level.meanAbs,
|
|
1180
|
-
peak: level.peak,
|
|
1181
|
-
frames: this.micFramesForwarded,
|
|
1182
|
-
},
|
|
1183
|
-
timestamp: Date.now(),
|
|
1184
|
-
}),
|
|
1185
|
-
}).catch(() => { });
|
|
1186
|
-
// #endregion
|
|
1187
1309
|
this.micFramesWindow = 0;
|
|
1188
1310
|
}
|
|
1189
1311
|
/** Level of the last uplink window, for tests and dev screens. `null` until a window closed. */
|