W jaki sposób Siri jest w stanie określić, kiedy skończę mówić. Powodem, dla którego chciałbym wiedzieć, jest to, że chciałbym wprowadzić podobną funkcjonalność z Apple Speech Recognition API z moją aplikacją. Czy jest to wykonalne, czy też jedynym sposobem, aby wiedzieć, kiedy użytkownik przestał mówić, jest wejście użytkownika?Zatrzymaj rozpoznawanie mowy po zakończeniu rozmowy przez użytkownika
12
A
Odpowiedz
1
Możesz użyć timera, miałem ten sam problem i nie mogłem go rozwiązać za pomocą eleganckiej metody.
fileprivate var timer:Timer?
func startRecordingTimer() {
lastString = ""
createTimerTimer(4)
}
func stopRecordingTimer() {
timer?.invalidate()
timer = nil
}
fileprivate func whileRecordingTimer() {
createTimerTimer(2)
}
fileprivate var lastString = ""
func createTimerTimer(_ interval:Double) {
OperationQueue.main.addOperation({[unowned self] in
self.timer?.invalidate()
self.timer = Timer.scheduledTimer(withTimeInterval: interval, repeats: false) { (_) in
self.timer?.invalidate()
if(self.lastString.characters.count > 0){
//DO SOMETHING
}else{
self.whileRecordingTimer()
}
}
})
}
aw SFSpeechRecognitionTaskDelegate
public func speechRecognitionTask(_ task: SFSpeechRecognitionTask, didHypothesizeTranscription transcription: SFTranscription) {
let result = transcription.formattedString
lastString = result
}
Powiązane problemy
- 1. C++ Rozpoznawanie mowy API
- 2. Android: rozpoznawanie mowy
- 3. C# Rozpoznawanie mowy
- 4. Rozpoznawanie mowy na telefonie iPhone
- 5. Rozpoznawanie mowy na iPhone 5
- 6. Chrome iOS webkit rozpoznawanie mowy
- 7. Zatrzymaj CABasicAnimation od usuwane po zakończeniu
- 8. Słowo kluczowe aktywowane rozpoznawanie mowy na Androidzie
- 9. Rozpoznawanie mowy Android: startActivityForResult() nie działa
- 10. Rozpoznawanie mowy w Windows Phone 8
- 11. Jak usunąć ostrość z EditText po zakończeniu edycji przez użytkownika?
- 12. rozpoznawanie mowy z pliku audio zamiast mikrofonu
- 13. Rozpoznawanie mowy za pomocą przeglądarki krzyżowej
- 14. Rozpoznawanie mowy API powielonych zwrotów na Androida
- 15. Rozpoznawanie mowy przy użyciu szkieletu jonowego
- 16. Rozpoznawanie mowy w bazie danych SQL VB.net
- 17. Jak dodać rozpoznawanie mowy Google w aplikacji
- 18. Zatrzymaj Visual Studio od zamknięcia programu po zakończeniu
- 19. Rozpocznij rozpoznawanie mowy za pomocą wyrażenia typu "OK Google"?
- 20. Pobierz dane użytkownika z Mowy?
- 21. Open Source Proste rozpoznawanie mowy w C++ w Windows
- 22. Po zakończeniu aplikacji VB6?
- 23. Jak wylogować użytkownika po przekroczeniu lub zakończeniu sesji
- 24. Po zakończeniu pracy funkcji
- 25. Rozpoznawanie kształtów po wykryciu krawędzi
- 26. Zatrzymaj usługę po zamknięciu aplikacji
- 27. Pożarowe zdarzenie po zakończeniu MarkerClusterer
- 28. Powiadomienia push po zakończeniu aplikacji
- 29. Rozpoznawanie liter powiedziane przez osobę używającą java
- 30. Uruchom kod jQuery po zakończeniu renderowania kodu HTML przez AngularJS
mojego zrozumienia jest to, że nie trzeba obsłużyć "gdy użytkownik zakończy mówienia". Powinieneś przeczytać przewodnik SiriKit tutaj: https://developer.apple.com/library/content/documentation/Intents/Conceptual/SiriIntegrationGuide/ResolvingandHandlingIntents.html#//apple_ref/doc/uid/TP40016875-CH5-SW1. Zasadniczo SiriKit daje "zamiar" z danymi zebranymi z mowy użytkownika, a ty musisz tylko postępować zgodnie z intencją i wykonywać własne operacje. – volatilevar
Pytanie dotyczy interfejsu API Speech Recognition API, a nie SiriKit. – nathan
Masz szczęście? Sam się z tym zmagam. – alhadhrami