怎样控制TTS单字读音不拖长?
flyflyz 发布于2019-06 浏览:1977 回复:4
0
收藏

我想做一个输入文字辅助发音的app,当用户输入单个文字或词组时,同步读出用户输入的字,如:用户输入“白”、“毛”、“浮”、“绿”、“水”时,我使用下面代码模拟:

speechSynthesizer.speak("白");

speechSynthesizer.speak("毛");

speechSynthesizer.speak("浮");

speechSynthesizer.speak("绿");

speechSynthesizer.speak("水");

TTS引擎在读出每一个字时都拖得很长,即使设置最快速度也没有明显效果。请问能否设置TTS引擎在读单个字音时发短读音?或者有没有办法异步向文字队列中添加文字,由TTS引擎在后台读出来?

收藏
点赞
0
个赞
共4条回复 最后由用户已被禁言回复于2022-04
#5fujiayi1984回复于2019-06

目前没有这类设置,可以获得音频数据后,剪切前后静音播放

0
#4flyflyz回复于2019-06
#2 用户已被禁言回复
读出每一个字时都拖得很长,是指什么很长?是输入之后到播报的时间吗?你的预期是多少?
展开

就像老师在考小学生听写时,把每一个字字正腔圆地读出来,是每个字的持续时间拉得很长,并不是字前或字后有空白时间。比如

speechSynthesizer.speak("朗"); speechSynthesizer.speak("读"); speechSynthesizer.speak("者");

speechSynthesizer.speak("朗读者");

消耗的时长是有很大差异的。

0
#3卡农LLLL回复于2019-06

感觉异步加文字这个操作.需要你自己实现啊.然后再放speak去合成播放

0
#2用户已被禁言回复于2019-06

读出每一个字时都拖得很长,是指什么很长?是输入之后到播报的时间吗?你的预期是多少?

0
TOP
切换版块