online-speech-denoiser.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /** @typedef {import('./types').OnlineSpeechDenoiserConfig} OnlineSpeechDenoiserConfig */
  2. /** @typedef {import('./types').OnlineSpeechDenoiserHandle} OnlineSpeechDenoiserHandle */
  3. /** @typedef {import('./types').GeneratedAudio} GeneratedAudio */
  4. /** @typedef {import('./types').AudioProcessRequest} AudioProcessRequest */
  5. const addon = require('./addon.js');
  6. class OnlineSpeechDenoiser {
  7. /**
  8. * @param {OnlineSpeechDenoiserConfig} config
  9. */
  10. constructor(config) {
  11. this.handle = addon.createOnlineSpeechDenoiser(config);
  12. this.config = config;
  13. this.sampleRate =
  14. addon.onlineSpeechDenoiserGetSampleRateWrapper(this.handle);
  15. this.frameShiftInSamples =
  16. addon.onlineSpeechDenoiserGetFrameShiftInSamplesWrapper(this.handle);
  17. }
  18. /**
  19. * @param {AudioProcessRequest} obj
  20. * @returns {GeneratedAudio}
  21. */
  22. run(obj) {
  23. return addon.onlineSpeechDenoiserRunWrapper(this.handle, obj);
  24. }
  25. /**
  26. * @param {boolean} [enableExternalBuffer=true]
  27. * @returns {GeneratedAudio}
  28. */
  29. flush(enableExternalBuffer = true) {
  30. return addon.onlineSpeechDenoiserFlushWrapper(
  31. this.handle, enableExternalBuffer);
  32. }
  33. reset() {
  34. addon.onlineSpeechDenoiserResetWrapper(this.handle);
  35. }
  36. }
  37. module.exports = {
  38. OnlineSpeechDenoiser,
  39. };