作家
登录

网页中文本朗读功能开发实现分享

作者: 来源: 2017-12-11 16:19:20 阅读 我要评论

  •         $target.addClass(splitConfig.hightlightCls); 
  •     } 
  •  
  •     // 开妒攀朗读 
  •     speakText(getText(e.target)); 
  •  
  • }).on('mouseleave.speak-help', speakTags, function (e) { 
  •     var $target = $(e.target); 
  •     if ($target.find('.' + splitConfig.wrapCls).length) { 
  •         return
  •     } 
  •  
  •     // 图片样式 
  •     if (e.target.nodeName.toLowerCase() === 'img') { 
  •         $target.css({ 
  •             border: 'none' 
  •         }); 
  •     } else { 
  •         $target.removeClass(splitConfig.hightlightCls); 
  •     } 
  •  
  •     // 停止语音 
  •     stopSpeak(); 
  • }); 
  •  
  • // 段落内文本朗读 
  • $(document).on('mouseenter.speak-help''.' + splitConfig.wrapCls, function (e) { 
  •     $(this).addClass(splitConfig.hightlightCls); 
  •  
  •     // 开妒攀朗读 
  •     speakText(getText(this)); 
  • }).on('mouseleave.speak-help''.' + splitConfig.wrapCls, function (e) { 
  •     $(this).removeClass(splitConfig.hightlightCls); 
  •  
  •     // 停止语音 
  •     stopSpeak(); 
  • }); 
  • 留意要把针对段落的语音处理和其他处所的分开。为什么? 因为段落是个块级元素,鼠标移入段落中的空白时,如:段落前后空白、首行缩进、末行残剩空白等,是不该该触发朗读的,如不雅不阻拦掉落,进行这些区域将直接触发整段文字的朗读,掉去了我们对段落文本内分隔的意义,并且,无论什么方法转化语音都是要时光的,大年夜段内容可能须要较长时光,影响语音输出的体验。

    文本合成语音

    应用一下两个API即可:

    • 膳绫擎我们是直接应用了 speakText(text)stopSpeak() 两个办法来触发语音的朗读和停止。

      我们来看下若何实现这个两个功能。

      其实现代浏览器默认已经供给了膳绫擎功能:

      1. var speechSU = new window.SpeechSynthesisUtterance(); 
      2. speechSU.text = '你好,世界!'
      3. window.speechSynthesis.speak(speechSU); 

      SpeechSynthesisUtterance 用于语音合成

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)