`
zha_zi
  • 浏览: 592539 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

浏览器调用操作系统讲述人功能

 
阅读更多

TTS是微软推出的一套文字朗读引擎(Text-To-Speech Engine),我们可以让它来为我们诵读网页中的文字信息,让眼睛休息一下。

在Microsoft Speech SDK 5.1的Samples/Scripts/SimpleTTS中已经提供了一个演示例子,不过是全英文的,在参考修改中遇到了一个问题,即

 

COM对象Sapi.SpVoice的实例变量的定义代码要和初始化及事件处理代码分开。

 

  也就是说:Sapi.SpVoice的实例变量VoiceObj的定义代码:

 

 

[javascript] view plaincopy
  1. // Create the Sapi SpVoice object  
  2. var VoiceObj = new ActiveXObject("Sapi.SpVoice");  

 

 

要放在一个<script></script>中,或者放在一个.js文件中,如speak0.js。

 

Sapi.SpVoice的实例变量VoiceObj的初始化及事件处理代码:

 

 

[javascript] view plaincopy
  1. function InitializeControls()  
  2. {  
  3.  // Initialize the Voices and AudioOutput Select boxes  
  4.  var VoicesToken = VoiceObj.GetVoices();  
  5.  var AudioOutputsToken = VoiceObj.GetAudioOutputs();  
  6. }  
  7.   
  8. InitializeControls();  
  9.   
  10.   
  11. function VoiceObj::EndStream()  
  12. {  
  13.  idbSpeakText.value = "朗读";  
  14. }  
  15.   
  16. function VoiceObj::StartStream()  
  17. {  
  18.  idbSpeakText.value = "停止";  
  19. }  

 

要放在另一个<script></script>中,或者放在另一个.js文件中,如speak1.js。

 

  演示代码:

 

 

 

[javascript] view plaincopy
  1. <HTML>  
  2. <HEAD>  
  3. <SCRIPT LANGUAGE="JavaScript">  
  4. // Create the Sapi SpVoice object  
  5. var VoiceObj = new ActiveXObject("Sapi.SpVoice");  
  6. </SCRIPT>  
  7.   
  8. <SCRIPT LANGUAGE="JavaScript">  
  9.   
  10. // Code in the BODY of the webpage is used to initialize controls and  
  11. // to handle SAPI events  
  12.   
  13. /***** Initializer code *****/  
  14.   
  15. function InitializeControls()  
  16. {  
  17.     // Initialize the Voices and AudioOutput Select boxes  
  18.     var VoicesToken = VoiceObj.GetVoices();  
  19.     var AudioOutputsToken = VoiceObj.GetAudioOutputs();  
  20. }  
  21.   
  22. InitializeControls();  
  23.   
  24. // Handle EndStream event     
  25. function VoiceObj::EndStream()  
  26. {  
  27.     idbSpeakText.value = "朗读";  
  28. }  
  29.   
  30. // Handle StartStream event   
  31. function VoiceObj::StartStream()  
  32. {  
  33.     idbSpeakText.value = "停止";  
  34. }  
  35.   
  36. // SpeakText() function:  
  37. //      This function gets the text from the textbox and sends it to the  
  38. //      Voice object's Speak() function. The value "1" for the second  
  39. //      parameter corresponds to the SVSFlagsAsync value in the SpeechVoiceSpeakFlags  
  40. //      enumerated type.  
  41. function SpeakText()  
  42. {  
  43. //alert(document.body.innerText);  
  44.     if (idbSpeakText.value == "朗读")  
  45.     {  
  46.         // Speak the string in the edit box  
  47.         try  
  48.         {  
  49.             VoiceObj.Speak(document.body.innerText, 1);  
  50.         }  
  51.         catch (exception)  
  52.         {  
  53.             alert("Error");  
  54.         }  
  55.     }  
  56.     else if(idbSpeakText.value == "停止")  
  57.     {  
  58.         // Speak empty string to Stop current speaking. The value "2" for   
  59.         // the second parameter corresponds to the SVSFPurgeBeforeSpeak  
  60.         // value in the SpeechVoiceSpeakFlags enumerated type.  
  61.         VoiceObj.Speak( "", 2);  
  62.     }  
  63. }  
  64. </script>  
  65.   
  66. <SCRIPT FOR="window" EVENT="OnQuit()" LANGUAGE="JavaScript">  
  67.     // Clean up voice object  
  68.     delete VoiceObj;  
  69. </SCRIPT>  
  70. </HEAD>  
  71.   
  72. <body>  
  73. <BUTTON id="idbSpeakText" onclick="SpeakText();">朗读</BUTTON>  
  74. <P>  这场比赛跟我预想的一样,德国队被西班牙玩死了。</P>  
  75. <P>  此前德国队横扫英格兰队和阿根廷队,立即吸引了众多墙头草,被捧为夺冠最大热门。</P>  
  76. <P>  其实熟悉欧洲俱乐部赛事的人都知道,德国俱乐部球队遇上西班牙球队成绩都不太理想。即使在西班牙联赛中水平表现一般的赫塔菲都能给德甲领头羊拜仁慕尼黑制造难堪。作为西甲领头羊的巴萨这几年对德国球队更是捷报频传,对阵不莱梅、斯图加特、沙尔克04、拜仁慕尼黑,不仅比分占优,而且在控球、传球上的技术优势也非常明显。</P>  
  77. <P>  此次西班牙对阵德国,西班牙队内首发的巴萨球员达到7人,除了巴尔德斯外,其他球员全部都上场了,普约尔和皮克坐镇后防线,哈维、布斯克茨、伊涅斯塔打中场,比利亚和佩德罗则打前锋。另外法布雷加斯和雷纳也出自巴萨青训营。而德国队首发阵容中来自拜仁的球员包括克洛泽、施魏因斯泰格和拉姆三人,如果不是托马斯-穆勒累积黄牌停赛,肯定也将是首发中的一员,而波多尔斯基和特罗肖夫斯基也曾在拜仁效力,另外替补席上的巴德施图贝尔、托尼-克罗斯、戈麦斯和布特也都是来自拜仁,也就是说这辆日尔曼战车同样有10名“拜仁帮”的球员。从一定意义上说,这场比赛就是 巴萨 vs 拜仁慕尼黑,西班牙队胜面很大。</P>  
  78. </body>  
  79. </html>  

 

分享到:
评论

相关推荐

    自己动手写操作系统(含源代码).part2

    有关操作系统的书籍资料可以找到很多,但是关注如何帮助读者实现一个试验性操作系统的书籍却不多见,本书便是从一个简单的引导扇区开始,讲述一个操作系统成长的故事,以作读者参考之用。 本书面向实践,通过具体...

    自己动手写操作系统(含源代码).part1

    有关操作系统的书籍资料可以找到很多,但是关注如何帮助读者实现一个试验性操作系统的书籍却不多见,本书便是从一个简单的引导扇区开始,讲述一个操作系统成长的故事,以作读者参考之用。 本书面向实践,通过具体...

    基于Web2.0的大型机操作系统GUI的实现.pdf

    本文主要讲述了基于Web2.0的大型机操作系统GUI的实现,旨在解决大型机操作系统古老的管理模式和操作界面带来的困难和不便。该系统采用Java、JavaScript、Ajax、REXX、JCL等技术,实现了大型机操作系统的GUI化。 ...

    13.WWW浏览器和Web服务器.rar

    描述中重复的“VB13.WWW浏览器和Web服务器”提示我们,这个压缩包可能包含多个章节或部分,专门讲解如何使用VB来实现对WWW浏览器和Web服务器的功能操作。VB是一种流行的编程语言,常用于开发桌面应用程序,它可以...

    os211:操作系统2021-1

    6. **编程接口(API)**:如系统调用,它是用户空间程序与操作系统内核交互的桥梁。 7. **操作系统安全**:讨论访问控制、权限模型、恶意软件防护、防火墙和加密技术。 8. **并发与并行**:探讨多线程、多进程的...

    施耐德Modicon M340编程手册.pdf

    安装Unity Pro软件需要满足一定的硬件和操作系统条件,包括但不限于PC的处理器、内存以及硬盘空间要求。软件安装过程中,用户可以选择安装的语言版本,包括中文,这意味着用户可以使用中文变量名进行编程,从而提高...

    毕业论文设计-IT计算机-ASP基于BS新闻管理系统(源码+论文).zip

    4. **跨平台性**:虽然ASP最初是为Windows环境设计的,但通过IIS(Internet Information Services)和其他Web服务器,可以在多种操作系统上运行。 论文部分可能涵盖了以下几个方面: 1. **需求分析**:阐述了系统的...

    2018080901006-刘文晨-python课设报告1

    实验环境为64位操作系统,使用Intel Core i5-8300H处理器和8GB内存,开发工具是JetBrains PyCharm社区版,Python解释器版本为3.8。题库数据存储在data文件夹中的question.xlsx文件中,考试结束后会播放music.mp3音乐...

    易语言八种方法打开指定网址源码

    易语言提供了调用系统API(应用程序接口)的功能,可以利用Windows API中的`ShellExecute`或`InternetOpenUrl`等函数来打开网址。通过设置参数,可以实现打开浏览器并加载指定URL。 2. **内嵌WebBrowser控件** ...

    Applet与Javascript的对话——让你的Javascript代码和Java Applet融洽地合作.pdf

    部分内容详细讲述了JavaScript如何调用Applet以及Applet如何反过来调用JavaScript。首先,现代浏览器基于DOM(文档对象模型)解析HTML,使得JavaScript能够访问和操作页面元素,包括Applet。在HTML中定义的Applet会...

    Python自动化测试.pdf

    Selenium是一个著名的Web应用自动化测试工具,它支持多种浏览器和操作系统。Selenium能够直接运行在浏览器中,模拟用户的操作进行测试。它的两个主要版本是Selenium 1.0和Selenium 2.0。Selenium 2.0加入了WebDriver...

    JSP 网站设计之 留言系统

    在本项目中,我们探讨的是一个基于JSP的网站设计,具体是实现一个留言系统。...第14章可能详细讲述了项目的某一部分,如具体的数据库设计或者Servlet的实现,进一步的学习和实践将帮助你更好地构建和优化这样的系统。

    vb_data.rar_kernel vb

    内核编程是计算机科学的一个高级主题,涉及到操作系统的核心功能,如进程管理、内存分配、设备驱动等。VB虽然通常用于开发用户界面友好的应用程序,但它也能通过特定的方式与内核交互。 标签"kernel_vb"进一步明确...

    Win7快捷键

    - **功能说明**:快速打开辅助技术工具,如放大镜、讲述人等。 - **应用场景**:适用于需要辅助技术支持的用户。 16. **Windows键+BREAK 打开“系统属性”对话框** - **功能说明**:快速查看系统配置信息。 - *...

    仿腾讯QQ和Skype通过URL触发自己的程序.pdf

    这是Windows操作系统中,浏览器用来处理未知URL协议的关键接口。当用户尝试访问一个不包含已知协议(如http或https)的URL时,浏览器会尝试寻找能够处理这种协议的程序。IURLSearchHook接口的Translate方法在此过程...

    第9章(图形用户界面).ppt

    Swing组件是轻量级的,它们大部分不直接与操作系统交互,而是由Java本身管理。这使得Swing可以在不同平台上保持一致的界面。Swing还引入了模型-视图-控制器(MVC)设计模式,使组件更加模块化,易于维护和扩展。 **...

    Matlab从入门到精通

    在软件方面,MATLAB依赖于操作系统,因此,用户必须确保操作系统与MATLAB的版本兼容。 MATLAB的安装过程一般比较直接,用户只需按照安装向导的指示,选择好安装路径和组件,等待安装程序完成即可。安装完成后,需要...

Global site tag (gtag.js) - Google Analytics