non-streaming-speech-denoiser.js 993 B

1234567891011121314151617181920212223242526272829303132
  1. /** @typedef {import('./types').OfflineSpeechDenoiserConfig} OfflineSpeechDenoiserConfig */
  2. /** @typedef {import('./types').OfflineSpeechDenoiserHandle} OfflineSpeechDenoiserHandle */
  3. /** @typedef {import('./types').GeneratedAudio} GeneratedAudio */
  4. /** @typedef {import('./types').AudioProcessRequest} AudioProcessRequest */
  5. const addon = require('./addon.js');
  6. class OfflineSpeechDenoiser {
  7. /**
  8. * @param {OfflineSpeechDenoiserConfig} config
  9. */
  10. constructor(config) {
  11. this.handle = addon.createOfflineSpeechDenoiser(config);
  12. this.config = config;
  13. this.sampleRate =
  14. addon.offlineSpeechDenoiserGetSampleRateWrapper(this.handle);
  15. }
  16. /**
  17. * Run denoiser synchronously.
  18. * @param {AudioProcessRequest} obj - { samples: Float32Array, sampleRate: number, enableExternalBuffer?: boolean }
  19. * @returns {GeneratedAudio}
  20. */
  21. run(obj) {
  22. return addon.offlineSpeechDenoiserRunWrapper(this.handle, obj);
  23. }
  24. }
  25. module.exports = {
  26. OfflineSpeechDenoiser,
  27. }