电工学习网

 找回密码
 立即注册

让你的SCADA讲中国话

2017-9-6 15:45| 发布者: admin| 查看: 148| 评论: 0|来自: 西门子工业技术论坛

摘要: 报警来了,播个铃声,播放一个一段wav文件,不过这个功能有点简单。来换个玩法吧,在指定的事件发生时,把根据你自由定义的文本(报警文本或运行时生成的文本)读出来,操作员不用看屏幕就知道发生了什么事,这样不 ...
报警来了,播个铃声,播放一个一段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, 2017-11-11 22:35

Powered by © 2011-2017 www.diangon.com 版权所有 免责声明 联系我们

这里是电工学习网—这里可以学习电工技术 电工基础知识—这里是电工之家

栏目导航:电脑论坛 | 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部