在ios中使用GCD同时运行两个api

时间:2013-03-19 09:59:28

标签: iphone ios6 grand-central-dispatch speech-to-text

我正在开发无线电应用程序,我需要将语音转换为文本。为此,我正在使用第三方api。为了获得更好的结果,我想同时运行两个api并比较输出。当用户点击记录按钮时,就会发生这种情况。

我知道我们可以使用GCD做到这一点,但没有准确了解我们如何实现这一目标。

需要建议。

谢谢。

1 个答案:

答案 0 :(得分:0)

简短的回答是你创建了两个GCD队列,每个队列用于一个语音到文本任务。在每个块中,您使用相同的输入数据调用两个不同的API。然后,您要么等待结果,要么在完成后让块调用回调状态方法。

请注意,您需要确保语音引擎可以安全地在后台线程上运行。

如果您想先录制音频,然后将数据提交给两个不同的引擎进行处理,这是相当简单的。但听起来您可能希望在用户单击“录制”后立即开始处理音频?在这种情况下,它在很大程度上取决于API如何实时提供数据。您可能希望明确地在单独的线程上运行它们,并在它们进入时为它们提供数据。