eGuideDog
free software for the blind

WebSpeech

English Version

(2016年3月29日更新)

WebSpeech是一个面向Web开发人员的Javascript库,调用该库可以很容易地写出会发声的网页。该库支持Android及iOS 4(或更新)的设备。该库可以从SourceForge下载。这里还有一个Drupal 7的WebSpeech模块

下面是声音的演示:

语言:
速度(-50..100): 音量(-100..100):

下面是使用该库的一个简单例子:

<html>
  <head>
    <meta http-equiv="Content-Type"
      content="text/html; charset=utf-8" /> 
    <script type='text/javascript'
      src='/WebSpeech/WebSpeech.js'></script>
  </head>
  <body>
    听到声音了吗?
    <script type='text/javascript'>
      WebSpeech.server = 'http://120.24.87.124/cgi-bin/ekho2.pl';
      WebSpeech.speak('听到声音了吗?');
    </script>
  </body>
</html>

下面还有一些利用WebSpeech编写的网页例子:

为什么利用WebSpeech可以编写发声的网页呢?这是因为WebSpeech后面还有一个语音服务器,该服务器向公众提供有限用量的免费语音服务。您也可以自己部署一台语音服务器,具体方法可参考How to setup eSpeak TTS server for WebSpeech。如果您觉得这项服务很有用,很希望您能向我们提供捐款,这对WebSpeech和电子导盲犬项目的持续发展很重要。

我们向商业用途网站(及政府网站)提供不限用量的语音服务支持,费用为每个网站1000元/年。

我们同时提供语音服务器的配置和维护服务。1台语音服务器的配置和1个月的维护,附上所有源代码及文档,并且提供一份经处理的、比标准版本质量更好的Ekho语音数据,费用为200美元或1000人民币。该服务需要用户事先准备一台可从互联网访问的Linux服务器。

需要以上服务的可联系Cameron Wong(hgneng at gmail.com)。

下面是WebSpeech的API:

// 默认语音服务器是 'http://wa.eguidedog.net/cgi-bin/ekho.pl'
// 请修改为 http://120.24.87.124/cgi-bin/ekho2.pl
WebSpeech.server = '您的语音服务器';

WebSpeech.speak('text to speak');
WebSpeech.pause();
WebSpeech.resume();
WebSpeech.stop();

// 朗读当前网页
WebSpeech.speakHtml();
WebSpeech.pauseHtml();
WebSpeech.stopHtml();

// 当WebSpeech初始化完成后运行
WebSpeech.ready(function () { ... });

// 当speak的文本完成后运行
WebSpeech.onfinish = function () { ... };

// 目前支持的声音有 EkhoMandarin(即普通话,缺省),EkhoCantonese(粤语)
// 以及eSpeak中支持的声音
WebSpeech.setVoice('voiceName'); 

WebSpeech.getSpeedDelta();
WebSpeech.setSpeedDelta(value); // -50 <= value <= 100
WebSpeech.getPitchDelta();
WebSpeech.setPitchDelta(value); // -100 <= value <= 100
WebSpeech.getVolumeDelta();
WebSpeech.setVolumeDelta(value); // -100 <= value <= 100

// 会激活浏览器“另存为”的功能
WebSpeech.saveMp3('text to save to MP3 format file');
WebSpeech.saveOgg('text to save to OGG format file');

// 获取汉字的音标,当数据到达时会调用参数中传入的函数,
// symbols就是我们需要的数据,是以空格为分隔符的字符串
WebSpeech.getPhonSymbols('text', function (success, symbols) { ... }); 

版权许可: GPLv2+