WSH调用系统语音播放

返回
Author Avatar
钢翼
2021-01-30
编程
62

新建js文件,将以下内容复制进去。保存双击执行。

var VoiceObj =new ActiveXObject("Sapi.SpVoice");
var count = VoiceObj.GetVoices().Count; //本地安装的语音包数量,win10内置两个语音包,Zira(只会说英语)和Huihui(会说中文也会说英语)
//WScript.Echo(count)  
VoiceObj.Rate = 0 //语速,-10~+10
VoiceObj.Volume = 100 //音量, 0~100
VoiceObj.Voice = VoiceObj.GetVoices().Item(1)//设置语音为HuiHui,具体看你电脑上的语音包

//WScript.Echo(VoiceObj.GetVoices().Item(1).GetDescription()) //输出语音包名称

VoiceObj.Speak("hello");  
VoiceObj.Speak("你好");  

//-------以下操作可将语音保存到文件-------

var StreamObj =  new ActiveXObject("Sapi.SpFileStream");
var FormatObj =  new ActiveXObject("Sapi.SpAudioFormat");
//设置文件流格式
StreamObj.Format= FormatObj 
//设置音频流格式
FormatObj.Type = 22
//输出音频文件位置
StreamObj.Open("D://你好.mp3",3,true);
 //设置声音对象的音频流输出流为输出文件对象
VoiceObj.AudioOutputStream = StreamObj;
VoiceObj.Speak("你好")
//关闭输出文件流
StreamObj.Close();
VoiceObj.AudioOutputStream = null;
WScript.Echo("操作成功")  

win7有可能是阉割版,因而无法创建sapi对象,可以通过下载以下修复包进行修复。 https://pan.baidu.com/s/1bq7qruf