2019-10-04 10:55:18 +00:00
|
|
|
// @flow
|
|
|
|
|
|
|
|
// Script expects to find rnnoise webassembly binary in the same public path root, otherwise it won't load
|
|
|
|
// During the build phase this needs to be taken care of manually
|
2022-07-20 12:31:17 +00:00
|
|
|
import { createRNNWasmModule } from '@jitsi/rnnoise-wasm';
|
2020-05-20 10:57:03 +00:00
|
|
|
|
2019-10-04 10:55:18 +00:00
|
|
|
import RnnoiseProcessor from './RnnoiseProcessor';
|
|
|
|
|
|
|
|
export { RNNOISE_SAMPLE_LENGTH } from './RnnoiseProcessor';
|
|
|
|
export type { RnnoiseProcessor };
|
|
|
|
|
2020-06-11 13:42:55 +00:00
|
|
|
let rnnoiseModule;
|
2019-10-04 10:55:18 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Creates a new instance of RnnoiseProcessor.
|
|
|
|
*
|
|
|
|
* @returns {Promise<RnnoiseProcessor>}
|
|
|
|
*/
|
|
|
|
export function createRnnoiseProcessor() {
|
2020-06-11 13:42:55 +00:00
|
|
|
if (!rnnoiseModule) {
|
2022-07-20 12:31:17 +00:00
|
|
|
rnnoiseModule = createRNNWasmModule();
|
2019-10-04 10:55:18 +00:00
|
|
|
}
|
|
|
|
|
2020-06-11 13:42:55 +00:00
|
|
|
return rnnoiseModule.then(mod => new RnnoiseProcessor(mod));
|
2019-10-04 10:55:18 +00:00
|
|
|
}
|