当给定的消息太长时,App Inventor的TextToSpeech不起作用

时间:2019-11-30 23:16:31

标签: app-inventor

在MIT App Inventor中,有一个名为TextToSpeech的媒体组件。它有一个称为Speak(text message)的方法,可以说给定的消息。

我遇到的问题是,当给定的消息很长时(例如,《创世纪》第一章的文本,大约4260个字符),TextToSpeech根本不讲话。 (顺便说一句,它对于创世记第二章工作得很好,后者较短,大约3164个字符。)

1 个答案:

答案 0 :(得分:1)

我要解决的问题(或解决方案)是将给定消息用换行符\n分成几段,(或用句点字符.分成句子的列表) (如果更适合您的情况),并重复调用一个过程,在该过程中,调用TextToSpeech仅讲单个段落。如果出现TextToSpeech AfterSpeaking,请检查是否还有更多要说的段落;如果是这样,请再次调用相同的过程。

这样,每次调用TextToSpeech.Speak时,给定的消息就足够小以使其正常工作。现在说长消息,如创世记第一章的文字,没有问题。

请参见下面的块:

enter image description here

注意有关正在使用的App Inventor版本:

Built: November 26 2019 Version: nb180a
Use Companion: 2.55 or 2.55u or 2.55 or 2.55uu
Target Android SDK: 28 (Android 9.0 Pie)