Как определить, что пользователь перестает говорить при записи микрофона с помощью AVAudioEngine?

Я использую AVAudioEngine для записи разговора пользователя, я хочу добиться того, чтобы, когда пользователь делает паузу или прекращает говорить более X секунд, будет воспроизводиться только что записанное предложение.

Но как мне обнаружить эту паузу разговора во время записи?? Не нашел полезного API в AVAudioEngine, есть идеи, как мне помочь?


person Abby Lin    schedule 27.02.2017    source источник


Ответы (1)


Вы можете установить таймер внутри

private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "en-US"))!    speechRecognizer.recognitionTask(with: recognitionRequest, resultHandler: { (result, error) in         

}) блокировать. Во время вызова speechRecognizer.recognitionTask установите время начала и после каждого последующего запроса внутри таймера проверяйте разницу между текущим временем и временем начала. Если разница больше, чем X секунд, делайте все, что хотите.

person Sachin Kumaram    schedule 18.08.2017