node-red-node-rdk-tools
Version:
配合RDK硬件及TROS使用的Node-RED功能包(Node-RED nodes for using TROS on a RDK hardware and TROS)
54 lines (49 loc) • 1.75 kB
HTML
<script type="text/x-red" data-template-name="rdk-tools texttoaudio">
<div class="form-row node-input-name">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="rdk-texttoaudio.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]rdk-texttoaudio.names.texttoaudio" style="width: 296px;">
</div>
</script>
<script type="text/javascript">
(function() {
var voices;
let speakStatus = false;
RED.comms.subscribe("text2audio", function(t, o){
var v = o.split('#',2);
if ('speechSynthesis' in window && speakStatus === false) {
speakStatus = true;
voices = window.speechSynthesis.getVoices();
var words = new SpeechSynthesisUtterance(v[1]);
words.rate = 0.8;
words.lang = 'zh-CN';
window.speechSynthesis.speak(words);
words.onend = function(event) {
// window.speechSynthesis.cancel();
speakStatus = false;
}
}
else if(speakStatus === false){
alert("Your Browser does not support Text-to-Speech");
}
});
RED.nodes.registerType("rdk-tools texttoaudio",{
category: "RDK Tools",
color: "#FF804A",
defaults: {
name: {value:""}
},
inputs:1,
outputs:0,
align: 'right',
icon: "tts.svg",
paletteLabel: function() {
return this._("rdk-texttoaudio.names.texttoaudio");
},
oneditprepare: function() {
},
label: function() {
return this.name || this._("rdk-texttoaudio.names.texttoaudio");
}
});
})()
</script>