1

所以我有这个循环:

for (int i =0; i< ([rounds_words count]-1); i++){
  [self.fliteController say:[rounds_words objectAtIndex:(i)] withVoice:self.slt];
}

其中array_o_words 是一个字符串数组,我想使用OpenEars 的TtS 引擎flite 来表示。

我已按照http://www.politepix.com/openears/#FliteController_Class_Reference上的说明进行操作,但当然这只是说明只能有一个实例。我试过重置 fliteController = nil 但这只会阻止它工作。

有什么建议可以使循环工作吗?

4

2 回答 2

1

OpenEars 开发人员在这里。对于 FliteController 的当前实现,您将通过在第一个索引处说出 NSString、等待 OpenEarsEventsObserver 委托方法 fliteDidFinishSpeaking 触发、在下一个索引处说出 NSString 等来获得所需的结果。

于 2012-10-24T12:30:10.883 回答
0

在我看来,循环应该可以正常工作,这让我相信问题存在于其他地方。既然您说一次只能有一个相关对象的实例,我假设您必须为每个事件提出某种完成处理程序,以便您知道在什么时候开始下一个事件。

此外,您是对的,将 nil 传递给循环中的对象会破坏操作。这基本上就像循环遍历你的数组并告诉每个对象开始然后立即告诉所述对象为零。

旁注,如果您希望对数组中的每个项目执行操作,请考虑以下更改。

采用:

for (int i =0; i < ([rounds_words count]); i++)

就目前而言,您当前的循环总是会短路。

于 2012-10-24T04:08:26.833 回答