web-dev-qa-db-fra.com

Existe-t-il un moyen d'utiliser la reconnaissance vocale iOS en mode hors ligne?

Je veux savoir s'il existe un moyen d'utiliser la reconnaissance vocale iOS en mode hors ligne. Selon la documentation ( https://developer.Apple.com/reference/speech ) je n'ai rien vu à ce sujet.

18
Danyl

J'ai peur qu'il n'y ait pas question pour le faire (cependant, assurez-vous de vérifier la mise à jour à la fin de la réponse).

Comme mentionné dans le Speech Framework Official Documentation :

Meilleures pratiques pour une expérience utilisateur exceptionnelle:

Soyez prêt à gérer les échecs qui peuvent être causés par l'atteinte des limites de reconnaissance vocale. Parce que la reconnaissance vocale est un service réseau , des limites sont appliquées pour que le service puisse rester librement accessible à toutes les applications.


Du point de vue de l'utilisateur final, essayer d'obtenir de l'aide Siri sans se connecter à un réseau devrait afficher un écran similaire à:

enter image description here

En outre, lorsque vous essayez d'envoyer un massage -par exemple-, vous remarquerez que le bouton micro doit être désactivé si l'appareil n'est pas connecté à un réseau.

enter image description here

En mode natif, l'iOS lui-même ne pourra pas utiliser cette fonctionnalité avant de vérifier la connexion réseau, je suppose que ce serait la même chose pour le développeur tiers lors de l'utilisation de Speech Framework.


MISE À JOUR:

Après avoir regardé Session API de reconnaissance vocale (en particulier, la partie 03:00 - 03:25), j'ai trouvé:

API de reconnaissance vocale généralement nécessite une connexion Internet, mais certains nouveaux appareils prennent en charge cette fonctionnalité tout le temps ; Vous voudrez peut-être vérifier si la langue donnée est disponible ou non.

Adapté de SFSpeech Recognizer Documentation :

Notez qu'un reconnaissance vocale prise en charge n'est pas la même chose qu'un reconnaissance vocale disponible; par exemple, les identificateurs pour certains paramètres régionaux peuvent nécessiter une connexion Internet. Vous pouvez utiliser la méthode supported​Locales() pour obtenir une liste des paramètres régionaux pris en charge et le is​Available propriété pour savoir si le module de reconnaissance pour un paramètre régional spécifique est disponible.


Lectures complémentaires:

Ces sujets peuvent être liés:

20
Ahmad F

La transcription hors ligne sera disponible à partir d'iOS 13. Vous l'activez avec requiresOnDeviceRecognition .

Exemple de code (Swift 5):

// Create and configure the speech recognition request.
recognitionRequest = SFSpeechAudioBufferRecognitionRequest()
guard let recognitionRequest = recognitionRequest else { fatalError("Unable to create a SFSpeechAudioBufferRecognitionRequest object") }
recognitionRequest.shouldReportPartialResults = true

// Keep speech recognition data on device
if #available(iOS 13, *) {
    recognitionRequest.requiresOnDeviceRecognition = true
}
5
Brad Dwyer