web-speech-profanity
Version:
Web Speech API adapter to use Cognitive Services Speech Services for both speech-to-text and text-to-speech service.
26 lines (21 loc) • 725 B
JavaScript
/* eslint no-magic-numbers: ["error", { "ignore": [0, 1, 100] }] */
// Cognitive Services does not support unsigned percentage
// It must be converted into +/- first.
function relativePercentage(value) {
let relative = Math.round((value - 1) * 100);
if (relative >= 0) {
relative = '+' + relative;
}
return relative + '%';
}
export default function buildSSML({ lang, pitch = 1, rate = 1, text, voice, volume }) {
return `<speak version="1.0" xml:lang="${ lang }">
<voice xml:lang="${ lang }" name="${ voice }">
<prosody pitch="${ relativePercentage(pitch) }" rate="${ relativePercentage(rate) }" volume="${ relativePercentage(
volume
) }">
${ text }
</prosody>
</voice>
</speak>`;
}