报警来了,播个铃声,播放一个一段wav文件,不过这个功能有点简单。 来换个玩法吧,在指定的事件发生时,把根据你自由定义的文本(报警文本或运行时生成的文本)读出 来,操作员不用看屏幕就知道发生了什么事,这样不是更惬意些吗…… 这中间就需要“文本转语音”TTS功能,当然这个功能的历史也算是比较悠久了,可惜WinCC OA没有提供 中文TTS功能。 那就想办法自己找一个吧,Windows中文操作系统自带的中文TTS功能,可以借用这个。 用记事本写一个VBS: d:\tts.vbs set sp = createobject("SAPI.SpVoice") set Voices = sp.GetVoices() '获得语音引擎集合 for i=0 to Voices.count-1 if Right(Voices(i).Id, 24)="MSSimplifiedChineseVoice" then cn=i next set sp.Voice = Voices.Item(cn) set oArgs = WScript.Arguments '命令行参数 For Each text In oArgs sp.speak(text) Next 在命令行下测试一下: D:\>tts.vbs 测试测试 这时如果计算机TTS正常工作,应该听得到“测试测试”的中文朗读。 接下来在WinCC OA需要播放声音的地方,加入以下脚本: string text="测试测试"; system("start /b d:\\tts.vbs " + text); 请加入自己的文本即可。 英文单词也可以读出来。 简单易行! |
电工学习网 ( )
GMT+8, 2021-12-6 20:45