95 lines
2.4 KiB
TypeScript
95 lines
2.4 KiB
TypeScript
// Metro module 12900 (f12901).
|
|
import { createApexExperiment } from "../experiments/apex/index";
|
|
import { assertNever } from "../../utils/GlobalUtils";
|
|
const apexExperiment = createApexExperiment({
|
|
kind: "user",
|
|
name: "2026-08-audio-fidelity",
|
|
defaultConfig: {
|
|
capSampleRate: false,
|
|
capChannelCount: false,
|
|
condition: "none"
|
|
},
|
|
variations: {
|
|
1: {
|
|
capSampleRate: true,
|
|
capChannelCount: false,
|
|
condition: "krisp"
|
|
},
|
|
2: {
|
|
capSampleRate: true,
|
|
capChannelCount: false,
|
|
condition: "noiseSuppression"
|
|
},
|
|
3: {
|
|
capSampleRate: true,
|
|
capChannelCount: false,
|
|
condition: "echoCancellation"
|
|
},
|
|
4: {
|
|
capSampleRate: true,
|
|
capChannelCount: false,
|
|
condition: "any"
|
|
},
|
|
5: {
|
|
capSampleRate: true,
|
|
capChannelCount: true,
|
|
condition: "krisp"
|
|
},
|
|
6: {
|
|
capSampleRate: true,
|
|
capChannelCount: true,
|
|
condition: "noiseSuppression"
|
|
},
|
|
7: {
|
|
capSampleRate: true,
|
|
capChannelCount: true,
|
|
condition: "echoCancellation"
|
|
},
|
|
8: {
|
|
capSampleRate: true,
|
|
capChannelCount: true,
|
|
condition: "any"
|
|
}
|
|
}
|
|
});
|
|
export function getAudioFidelityExperimentConfig(a0) {
|
|
return apexExperiment.getConfig({
|
|
location: a0.location
|
|
});
|
|
}
|
|
export function getVoiceFidelityCaps({ location: location2 }, a1) {
|
|
let krispEnabled;
|
|
if (a1.krispEnabled || a1.noiseSuppressionEnabled || a1.echoCancellationEnabled) {
|
|
const config = apexExperiment.getConfig({
|
|
location: location2
|
|
});
|
|
const condition = config.condition;
|
|
if (condition === "krisp") {
|
|
krispEnabled = a1.krispEnabled;
|
|
} else if (condition === "noiseSuppression") {
|
|
krispEnabled = a1.noiseSuppressionEnabled;
|
|
} else if (condition === "echoCancellation") {
|
|
krispEnabled = a1.echoCancellationEnabled;
|
|
} else if (condition === "any") {
|
|
krispEnabled = a1.krispEnabled || a1.noiseSuppressionEnabled || a1.echoCancellationEnabled;
|
|
} else {
|
|
krispEnabled = false;
|
|
if (condition !== "none") {
|
|
assertNever(condition);
|
|
krispEnabled = void 0;
|
|
}
|
|
}
|
|
return krispEnabled ? {
|
|
maxSampleRateHz: config.capSampleRate ? 32000 : 0,
|
|
maxChannelCount: config.capChannelCount ? 1 : 0
|
|
} : {
|
|
maxSampleRateHz: 0,
|
|
maxChannelCount: 0
|
|
};
|
|
}
|
|
return {
|
|
maxSampleRateHz: 0,
|
|
maxChannelCount: 0
|
|
};
|
|
}
|