我正在尝试将利用文本控制标签的 TTS 应用程序从桌面/网络/iOS 移植到 Android。该应用程序制作一个文本文件,其中包含要说出的文本和说出的单词之间的静默时间段。静默期用文本控制标记表示,例如 SAPI TTS<silence msec="1000"/>
标记或 iOS TTS 引擎文本控制标记用于静默[[slnc 10000]]
发送到 SAPI TTS 语音合成器的文本如下所示:
Text one <silence msec="750"/> text two <silence msec="1000"/> text three <silence msec="500"/> Text four <silence msec="600"/> Text five.....
同样,对于 iOS TTS,用于静音的文本控制标记是[[slnc 10000]]
,要发送到语音合成器的文本如下所示:
Text one [[slnc 750]] text two [[slnc 10000]] text three [[slnc 500]] text four [[slnc 600]] text five......
Android TTS 似乎没有为语音合成器使用文本控制标签。此外,该方法的以下两种变体speech()
使用谷歌网络服务,以便实现从语音合成器服务器返回的语音文本的准确计时,并且代码中的静音时段的计时可能是不可能的或充其量是不可靠的。
speak(speech, TextToSpeech.QUEUE_FLUSH, null);
speak(speech, TextToSpeech.ADD_ADD, null);
我欢迎任何专注于保持口语之间沉默时间的准确时间的 Android 解决方案。