我想将“每分钟的单词数”转换为AVSpeechUtterance的语速。

我怎样才能做到这一点?

我可以使用语速获得文本的总时间长度吗?

我的代码:

- (AVSpeechUtterance*)convertTextToSpeak:(NSString*)textToSpeak {
    AVSpeechUtterance *speechUtterance = [[AVSpeechUtterance alloc] initWithString:textToSpeak];
    speechUtterance.rate = 0.2; // default = 0.5 ; min = 0.0 ; max = 1.0
    speechUtterance.pitchMultiplier = 1.0; // default = 1.0 ; range of 0.5 - 2.0
    speechUtterance.voice = [self customiseVoice];
    return speechUtterance;
}

最佳答案

据我所知,这两者都是不可能的。 rate不等于每分钟特定的单词数,它取决于实际的文本(单词有多长时间,有多少停顿/标点符号...),语音/语言等。您可能通过一些实验得到一个近似值。

也没有API来确定AVSpeechUtterance的长度(除了在讲话时进行测量,但这可能不是您想要的)。

07-26 09:43