來換個玩法吧,在指定的事件發(fā)生時,把根據(jù)你自由定義的文本(報警文本或運(yùn)行時生成的文本)讀出來,操作員不用看屏幕就知道發(fā)生了什么事,這樣不是更愜意些嗎?想跟昌暉儀表工程師一起練練手,那就繼續(xù)往下看。
這中間就需要“文本轉(zhuǎn)語音”TTS功能,當(dāng)然這個功能的歷史也算是比較悠久了,可惜西門子WinCC OA沒有提供中文TTS功能。那就想辦法自己找一個吧,Windows中文操作系統(tǒng)自帶的中文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 '命令行參數(shù)
For Each text In oArgs
sp.speak(text)
Next
在命令行下測試一下:D:\>tts.vbs 測試測試,這時如果計(jì)算機(jī)TTS正常工作,應(yīng)該聽得到“測試測試”的中文朗讀。
接下來在WinCC OA需要播放聲音的地方,加入以下腳本:
string text="測試測試";
system("start /b d:\\tts.vbs " + text);
請加入自己的文本即可,英文單詞也可以讀出來。簡單易行!
本文作者:程瀚儂
