1

我正在我的应用程序中使用此 UI 实现 AVSpeechSynthesizer:

在此处输入图像描述

如何从 AVSpeechSynthesizer 话语中获取进度?我看到没有委托方法或 API 来获取当前进度,但是是否有解决方法来获取进度?

4

1 回答 1

3

有两种方法可以去这里。delegate两者都从为您的AVSpeechSynthesizer实例设置 a 开始。

如果您通过创建多个话语并将其排入队列来向合成器提供文本,则可以跟踪您为其发言的话语,并speechSynthesizer:didFinishSpeechUtterance:在您的委托中实施以在它们完成时收到通知。根据您的口语文本有多长以及您已将其分解成多少话语,衡量已完成话语的数量与要说出的总数之间的关系,可以提供一个不错的粗粒度指示语音进度。

如果您在一个话语中提供所有文本,或者如果您正在使用多个话语并想要更细粒度地衡量进度,speechSynthesizer:willSpeakRangeOfSpeechString:utterance:请在您的委托中实施。您可以通过将当前所说的范围与语音字符串的长度进行比较来观察进度。

于 2014-07-09T18:35:53.020 回答