js实现文字转语音

JavaScript09

js实现文字转语音,第1张

函数目前处于实验性阶段,在使用它之前,请仔细检查浏览器兼容性表。

text – 要合成的文字内容,字符串

lang – 使用的语言,字符串, 例如:“zh-cn”

voiceURI – 指定希望使用的声音和服务,字符串

volume – 声音的音量,区间范围是0到1,默认是1

rate – 语速,数值,默认值是1,范围是0.1到10,表示语速的倍数,例如2表示正常语速的两倍。

pitch – 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1

SpeechSynthesis.paused 只读

当 SpeechSynthesis 处于暂停状态时, Boolean 值返回 true 。

SpeechSynthesis.pending 只读

当语音播放队列到目前为止保持没有说完的语音时, Boolean 值返回 true 。

SpeechSynthesis.speaking 只读

当语音谈话正在进行的时候,即使 SpeechSynthesis 处于暂停状态, Boolean 返回 true 。

前几天一个需求需要实现刷完门禁之后实现广播,相当于文字转语音;发现世界上最好的语言(PHP)解决方案不支持离线,几乎都是需要互联网+第三方接口才能实现;另外即使JS的类库,也存在各种各样的问题;

办法还是比困难多,经过多方求证;终于:人生苦短,我用Python

就是这么简单;用python命令只要执行该文件,即可听到悦耳的播报

但是因为后台和接口是PHP写的,怎么能无缝斜街呢?

那么就需要用到 system()和exec() 之类的函数;又因为是离线项目,就是局域网实现,也不用考虑并发和安全问题;

所以:

test.php 中如下:

假如以上是PHP后台或者接口;

通过业务逻辑执行到以上文件的时候,就会粗发以下:

至此完美实现;

或许还有更好结局方案,欢迎读者大拿留下宝贵评论

关于 sys 和 pyttsx3 包,不多介绍,有兴趣可以自行Google;

文本转语音,称为TTS(Text-To-Speech),也称为语音合成引擎。

微信提供了”微信同声传译“插件,文档见 这里 ,它包括语音输入、文本翻译、语音合成等功能。

本文介绍语音合成在微信小程序中的使用。

  在需要播放的页面设置一个播放按钮,点击后获取文本并合成语音播放。如上图。

在微信小程序管理后台先要注册,

app.json中引入插件

页面js文件中,声明插件

页面js文件中,加载音频播放器

js页面中,定义上传文本合成语音功能的函数

js页面中,根据语音资源地址,定义播放函数

长文本处理,播放文本限制为:1000字节。

如果超过1000字节的文本,可以分段截取并播放;可以按照估算的播放速度控制延时时间。