How to use the speech-rule-engine.pprintXML function in speech-rule-engine

To help you get started, we’ve selected a few speech-rule-engine examples, based on popular ways it is used in public projects.

github pkra / mathjax-node-sre / lib / main.js View on Github external
const postprocessor = function (speechConfig, result, input, callback) {
    if (result.error) throw result.error;
    if (!result.mml && !result.mmlNode) throw new Error('No MathML found. Please check the mathjax-node configuration');
    if (!result.svgNode && !result.htmlNode && !result.mmlNode) throw new Error('No suitable output found. Either svgNode, htmlNode or mmlNode are required.');
    if (!result.mml) result.mml = result.mmlNode.outerHTML;
    if (!speechConfig.speech) speechConfig.speech =  'deep';
    // add semantic tree
    if (speechConfig.semantic) {
        result.streeJson = sre.toJson(result.mml);
        const xml = sre.toSemantic(result.mml).toString();
        result.streeXml = speechConfig.minSTree ? xml : sre.pprintXML(xml);
    }
    // return if no speakText is requested
    if (!speechConfig.speakText) {
        callback(result, input);
        return
    }
    // enrich output
    sre.setupEngine(speechConfig);
    result.speakText = sre.toSpeech(result.mml);
    if (result.svgNode) {
        result.svgNode.querySelector('title').innerHTML = result.speakText;
        // update serialization
        // HACK add lost xlink namespaces TODO file jsdom bug
        if (result.svg) result.svg = result.svgNode.outerHTML
            .replace(/><([^/])/g, ">\n<$1")
            .replace(/(<\/[a-z]*>)(?=<\/)/g, "$1\n")

speech-rule-engine

A standalone speech rule engine for XML structures, based on the original engine from ChromeVox.

Apache-2.0
Latest version published 6 days ago

Package Health Score

78 / 100
Full package analysis

Similar packages