Swift: остановить распознавание речи после x секунд молчанияIOS

Программируем под IOS
Ответить
Anonymous
 Swift: остановить распознавание речи после x секунд молчания

Сообщение Anonymous »

Я искал решение, но все из тех, что я видел, сбивают с толку, поэтому я решил создать новый вопрос.

Я' Я использую речевую библиотеку и хочу, чтобы задача распознавания останавливалась через 2 секунды без участия пользователя. Я знаю, что хочу использовать таймер, но не могу понять, где его разместить и как обновить.

Я запускаю таймер при нажатии кнопки записи. нажата, и я аннулирую ее при нажатии кнопки остановки записи.

Но где мне проверить, добавил ли пользователь новый ввод? Я подумывал сохранить последнюю транскрипцию и сравнить ее со следующей: если они отличаются, сбросить таймер.

Вот как выглядит мой код:

recognitionTask = speechRecognizer.recognitionTask(with: recognitionRequest) { result, error in
var isFinal = false

if let result = result {
self.textView.text = result.bestTranscription.formattedString
// Should I compare the result here to see if it changed?
isFinal = result.isFinal
}

// Or should I do it here? In what order is this code even running?

if error != nil || isFinal {
self.result = self.textView.text

self.audioEngine.stop()
inputNode.removeTap(onBus: 0)

self.recognitionRequest = nil
self.recognitionTask = nil

self.recordButton.isEnabled = true
self.recordButton.setTitle("Start Recording", for: [])
}
}


Подробнее здесь: https://stackoverflow.com/questions/451 ... of-silence
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»