使用Ifix实现语音报警的方法。 点击:2367 | 回复:4



如火

    
  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-05-29 09:33:00
楼主
感谢caojunyi提供!

    播放语音文件(.WAV)可以通过API函数来进行,不需要单独的编写。播放WAV文件的函数有两个,对应于同步和异步。

    所谓同步是指一次只能播放一个语音文件,不可以连续播放;而异步则可以同时打开多个语 音文件,一个个连续的播放,在多个报警同时到来时非常有用。

    同步函数为:mciSendString  使用时首先要声明:Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA"  (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

用法:

    Dim filename as String 
    Dim cmd As String 
    filename = "test.wav" cmd = "open " & filename & " type WAVEAudio alias MyWav" Call mciSendString(cmd, 0, 0, 0) 
    Call mciSendString("play MyWav", 0, 0, 0) 

    异步函数为:mciSendString  使用时首先要声明:Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"  (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long 
用法: 

    Dim filename as String 
    filename = "test.wav" 
    Call sndPlaySound(filename, SND_SYNC) 
    可以连续调用sndPlaySound来进行连续多个语音文件的播放。



lostcity.blog.zj.com

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 246回
  • 年度积分:0
  • 历史总积分:350
  • 注册:2005年7月11日
发表于:2006-05-29 23:07:00
1楼
找一个txt2voice的控件
可以直接把文本朗读出来,这样才是真正的语音报警

工控帮

  • 精华:0帖
  • 求助:0帖
  • 帖子:63帖 | 675回
  • 年度积分:0
  • 历史总积分:1418
  • 注册:2001年7月06日
发表于:2006-05-30 07:50:00
2楼
如火 :这个帖子可是俺的原创,发表与http://bbs.opc-china.com
详见:http://www.opc-china.com/bbs/dispbbs.asp?boardID=14&ID=603&page=1[原创]IFIX系列例程 
您的这个转载是不全的,我写的语音报警共有3节的,这是第一小节。

其实lostcity.blog.zj.com: 的方法不错,我也试着通过TTS来做了,不过用TTS读汉语的效果不好。
欢迎大家到http://bbs.opc-china.com 来做客。

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2006-05-30 08:59:00
3楼
类似的输入文本,就能语音发声的开发包很多,如微软,IBM都有免费的。

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2008-04-24 10:33:12
4楼

在什么地方写这些语句呢??


热门招聘
相关主题

官方公众号

智造工程师