sable_renderer.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import * as EngineConst from '../common/engine_const.js';
  2. import { XmlRenderer } from './xml_renderer.js';
  3. export class SableRenderer extends XmlRenderer {
  4. finalize(str) {
  5. return ('<?xml version="1.0"?>' +
  6. '<!DOCTYPE SABLE PUBLIC "-//SABLE//DTD SABLE speech mark up//EN"' +
  7. ' "Sable.v0_2.dtd" []><SABLE>' +
  8. this.separator +
  9. str +
  10. this.separator +
  11. '</SABLE>');
  12. }
  13. pause(pause) {
  14. return ('<BREAK ' +
  15. 'MSEC="' +
  16. this.pauseValue(pause[EngineConst.personalityProps.PAUSE]) +
  17. '"/>');
  18. }
  19. prosodyElement(tag, value) {
  20. value = this.applyScaleFunction(value);
  21. switch (tag) {
  22. case EngineConst.personalityProps.PITCH:
  23. return '<PITCH RANGE="' + value + '%">';
  24. case EngineConst.personalityProps.RATE:
  25. return '<RATE SPEED="' + value + '%">';
  26. case EngineConst.personalityProps.VOLUME:
  27. return '<VOLUME LEVEL="' + value + '%">';
  28. default:
  29. return '<' + tag.toUpperCase() + ' VALUE="' + value + '">';
  30. }
  31. }
  32. closeTag(tag) {
  33. return '</' + tag.toUpperCase() + '>';
  34. }
  35. }