1

アプリでこの UI を使用して AVSpeechSynthesizer を実装しています。

ここに画像の説明を入力

AVSpeechSynthesizer の発話から進行状況を取得するにはどうすればよいですか? 現在の進行状況を取得するデリゲート メソッドや API がないように見えますが、進行状況を取得するための回避策はありますか?

4

1 に答える 1

3

ここに行くには2つの方法があります。どちらも、インスタンスに を設定することから始まりdelegateますAVSpeechSynthesizer

いくつかの発話を作成してキューに入れることにより、シンセサイザーにテキストを提供している場合は、発話に指定した発話を追跡し、speechSynthesizer:didFinishSpeechUtterance:完了時に通知されるようにデリゲートに実装できます。話されたテキストの長さと、それを分割した発話の数に応じて、話される合計数に対して完了した発話の数を測定することで、発話の進行状況を適切に大まかに示すことができます。

テキストをすべて 1 つの発話で提供している場合、または複数の発話を使用していて、よりきめ細かな進行状況の測定が必要な場合speechSynthesizer:willSpeakRangeOfSpeechString:utterance:は、デリゲートに実装します。現在発話されている範囲と発話文字列の長さを比較することで、進行状況を確認できます。

于 2014-07-09T18:35:53.020 に答える