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字节的文本,可以分段截取并播放;可以按照估算的播放速度控制延时时间。