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语音包,并选择它作为默认的系统声音播放西里尔文字(我做了以前)。