abstract_audio_renderer.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.AbstractAudioRenderer = void 0;
  4. const engine_js_1 = require("../common/engine.js");
  5. class AbstractAudioRenderer {
  6. constructor() {
  7. this.separator_ = ' ';
  8. }
  9. set separator(sep) {
  10. this.separator_ = sep;
  11. }
  12. get separator() {
  13. return engine_js_1.Engine.getInstance().modality === 'braille' ? '' : this.separator_;
  14. }
  15. error(_key) {
  16. return null;
  17. }
  18. merge(spans) {
  19. let str = '';
  20. const len = spans.length - 1;
  21. for (let i = 0, span; (span = spans[i]); i++) {
  22. str += span.speech;
  23. if (i < len) {
  24. const sep = span.attributes['separator'];
  25. str += sep !== undefined ? sep : this.separator;
  26. }
  27. }
  28. return str;
  29. }
  30. finalize(str) {
  31. return str;
  32. }
  33. pauseValue(value) {
  34. let numeric;
  35. switch (value) {
  36. case 'long':
  37. numeric = 750;
  38. break;
  39. case 'medium':
  40. numeric = 500;
  41. break;
  42. case 'short':
  43. numeric = 250;
  44. break;
  45. default:
  46. numeric = parseInt(value, 10);
  47. }
  48. return Math.floor((numeric * engine_js_1.Engine.getInstance().getRate()) / 100);
  49. }
  50. }
  51. exports.AbstractAudioRenderer = AbstractAudioRenderer;