Windows 系统调用.COM.微软语言引擎简单应用(C#).docVIP

Windows 系统调用.COM.微软语言引擎简单应用(C#).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows 系统调用.COM.微软语言引擎简单应用(C#)

Windows 系统调用.COM.微软语言引擎简单应用(C#) 本文主要讲述,如何调用微软的语言引擎... 应用场景 如看图识字软件等等....(我可不是作语言软件的、这个子是做着玩的) 涉及技术 动态调用Com对象(全反射、没有引用com ocx) 取得系统存在的各种语言引擎 使用引擎进行朗读 使用引擎进行保存声音 程序图列: 主要功能描述 实列变量等,构造函授等 取得所有的 识别对象模块集合,放入下拉框 代码 object _spVoiceCls = null; //保存朗读用的 SAPI.SpVoice const int SpFlags = 1; //SpeechVoiceSpeakFlags.SVSFlagsAsyn object _oISpeechObjectTokens = null; //保存 SAPI.ISpeechObjectTokens 就是系统有的语音引擎集合 int TokensCount = 0; // 语音引擎集合 数 DictionaryEntry[] _deTokens=null; //榜定下拉框用的 public MainForm() { InitializeComponent(); this.HandleDestroyed += new EventHandler(Form1_HandleDestroyed); } private void Form1_Load(object sender, EventArgs e) { InitSAPI(); } 系统事件:程序加载 取得所有的 识别对象模块集合,放入下拉框 代码 void InitSAPI() { //创建语音对象朗读用 _spVoiceCls = CreateComObject(SAPI.SpVoice); if (_spVoiceCls == null) { MessageBox.Show(您的系统没有,微软语音组件); Application.Exit(); } else {//取得所有的 识别对象模块集合 _oISpeechObjectTokens = CallComMethod(GetVoices, _spVoiceCls); //取得SAPI.ISpeechObjectTokens //识别对象集合 Count; object r = GetComPropery(Count, _oISpeechObjectTokens); if (r is int) { TokensCount = (int)r; if (TokensCount 0) { //取得全部语音识别对象模块,及名称,以被以后使用 _deTokens = new DictionaryEntry[TokensCount]; for (int i = 0; i TokensCount; i++) { //从集合中取出单个 识别对象模块 object oSpObjectToken = CallComMethod(Item, _oISpeechObjectTokens, i); //返回 SAPI.SpObjectToken //取名称 string Description = CallComMethod(GetDescription, oSpObjectToken) as string; //放到 DictionaryEntry 对象中,key 是 识别对象模块,value 是名称 _deTokens= new DictionaryEntry(oSpObjectToken, Description); } //邦定到 下拉框 cboxTokens.DisplayMember = Value; cboxTokens.ValueMember = Key; cboxTokens.DataSource = _deTokens; cboxTokens.SelectedIndex = 0; } } } } 用户事件:朗读 朗读输入的文本信息 代码 private void btnSynthesis_Click(object sender, EventArgs e) { string msg = rTxtMsg.Text.Trim(); if (msg.Length != 0) { if (_spVoiceCls != null) { //设置语言引擎 SetComProperty(Voice, _spVoiceCls, cboxTokens.SelectedValue); //调用Speak 函数,msg 是要播放的文本,1 是异步播放,因为是异步的 com 对象不立刻释放 CallComMethod(Sp

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档