用SAPI的TTS功能把文本转换成音频文件

如题,SAPI是微软配套Windows出的语音识别和TTS(Text To Speech)引擎,也就是一段WScript的JScript脚本,把in.txt转换成out.wav,可以用来听小说、文档,因为中文发音规则简单,所以中文的转换效果很理想。

var script_path = WScript.ScriptFullName
script_path = script_path.substring(0, script_path.lastIndexOf('\\'));
fso = WScript.CreateObject("Scripting.FileSystemObject");
infile = fso.OpenTextFile(script_path+"\\in.txt");
tts = WScript.CreateObject("SAPI.SpVoice");
ofs = WScript.CreateObject("SAPI.SpFileStream");
ofs.Open(script_path+"\\out.wav", 3, false);
tts.AudioOutputStream = ofs;
while (!infile.AtEndOfStream)
{
  tts.Speak(infile.ReadLine());
}
infile.Close();
在Win7 32位旗舰版下得到的wav是单声道22050Hz的质量,比较差(明显不如SAPI不写入文件,直接发声的情况),但是还没找到音质设置的方法。

你可能感兴趣的:(api)