diff --git a/config.js b/config.js index f8ea743d056..9eb2b146711 100644 --- a/config.js +++ b/config.js @@ -215,12 +215,17 @@ var config = { // - https://meet.example.com/libs/krisp/models/model_8.kw // - https://meet.example.com/libs/krisp/models/model_16.kw // - https://meet.example.com/libs/krisp/models/model_32.kw + // - https://meet.example.com/libs/krisp/models/model_bvc.kw + // - https://meet.example.com/libs/krisp/assets/bvc-allowed.txt + // In case when you have known BVC supported devices and you want to extend allowed devices list + // - https://meet.example.com/libs/krisp/assets/bvc-allowed-ext.txt // NOTE: Krisp JS SDK v1.0.9 was tested. // noiseSuppression: { // krisp: { // enabled: false, // logProcessStats: false, // debugLogs: false, + // useBVC: false, // }, // }, diff --git a/react/features/base/config/configType.ts b/react/features/base/config/configType.ts index c867891f05e..6779170e824 100644 --- a/react/features/base/config/configType.ts +++ b/react/features/base/config/configType.ts @@ -129,6 +129,7 @@ export interface INoiseSuppressionConfig { debugLogs?: boolean; enabled?: boolean; logProcessStats?: boolean; + useBVC?: boolean; }; } diff --git a/react/features/stream-effects/noise-suppression/NoiseSuppressionEffect.ts b/react/features/stream-effects/noise-suppression/NoiseSuppressionEffect.ts index 9b99648266d..dbe16062083 100644 --- a/react/features/stream-effects/noise-suppression/NoiseSuppressionEffect.ts +++ b/react/features/stream-effects/noise-suppression/NoiseSuppressionEffect.ts @@ -90,7 +90,7 @@ export class NoiseSuppressionEffect { let init; if (this._options?.krisp?.enabled) { - init = _initializeKrisp(this._options).then(filterNode => { + init = _initializeKrisp(this._options, audioStream).then(filterNode => { this._noiseSuppressorNode = filterNode; if (krispState.filterNodeReady) { @@ -167,10 +167,14 @@ export class NoiseSuppressionEffect { * Initializes the Krisp SDK and creates the filter node. * * @param {INoiseSuppressionConfig} options - Krisp options. + * @param {MediaStream} stream - Audio stream which will be mixed with _mixAudio. * * @returns {Promise} */ -async function _initializeKrisp(options: INoiseSuppressionConfig): Promise { +async function _initializeKrisp( + options: INoiseSuppressionConfig, + stream: MediaStream +): Promise { await audioContext.resume(); if (!krispState.sdk) { @@ -180,12 +184,18 @@ async function _initializeKrisp(options: INoiseSuppressionConfig): Promise