2
我試圖使西里爾文本到語音節點js模塊。PowerShell西里爾輸入編碼通過節點js
我使用node-powershell來運行.NET TTS命令。它對拉丁符號正常工作,但不會對任何西里爾符號作出反應。
但是,如果我直接輸入命令到Powershell控制檯 - 它適用於西里爾和拉丁符號。
所以我做了一個討論,問題點是node.js輸出編碼。
Node.js的腳本:
var sayWin = (text) => {
var Shell = require('node-powershell');
var shell = new Shell({
inputEncoding: 'binary' //tried different endcoding
});
shell.addCommand('Add-Type -AssemblyName System.speech');
shell.addCommand('$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer');
shell.addCommand('$speak.Speak("' + text + '")');
shell.on('output', data => {
console.log("data", data);
});
return shell.invoke();
}
sayWin('latin'); //talk
sayWin('кирилица'); //silence
sayWin('\ufeffкирилица'); //silence trying with BOM
請注意您可能必須安裝Windows TTS語音包,並選擇它作爲默認的系統聲音播放西里爾文字(我做了以前)。