2016-04-20 1 views
13

Nous utilisons l'API WebkitSpeechRecognition dans Chrome. Comme il s'agit d'une application prototype, nous sommes très heureux de ne prendre en charge que Chrome. Nous détectons donc la prise en charge de l'API en effectuant une vérification window.hasOwnProperty('webkitSpeechRecognition') (sous la forme suggested by Google). Cela échoue heureusement dans Firefox, mais le nouveau Opera (basé sur Webkit) rapporte qu'il a la propriété. Et, en effet, tout le code fonctionne comme prévu, sauf que ... aucun des événements n'est jamais déclenché, aucune voix n'est jamais enregistrée. Donc, ma question est la suivante: est-ce que je peux le faire fonctionner d'une manière ou d'une autre? Cela nécessite-t-il des autorisations ou des paramètres spéciaux?Prise en charge de l'API webkitSpeechRecognition dans Opera

Sinon, existe-t-il un moyen (à part le bon vieux navigateur-reniflant) de détecter le bon fonctionnement de la webkitSpeechRecognition?

+0

Avez-vous trouvé une alternative au navigateur renifleurs? Je suis confronté au même problème –

+0

@OscarHermosilla non, malheureusement. Ce n'était pas critique pour nous, donc je ne regardais pas très activement. Mais je suis curieux, laissez-moi juste mettre en place une prime. –

Répondre

4

À l'heure actuelle, seuls google chrome ont une API de reconnaissance vocale par flux (ils ont google sppeech API).

Si vous utilisez https://www.google.com/intl/en/chrome/demos/speech.html sur Opera, il vous indiquera que vous avez besoin de Chrome25 + pour cela.

D'après le modèle http://caniuse.com/#feat=speech-recognition Opera Webkit prend en charge cette fonctionnalité, mais pour l'instant, cela ne fonctionne pas. Opera n'a aucun service d'API qui le traduirait à la volée. À l'heure actuelle, il n'y a que des espaces réservés dans leur navigateur, peut-être qu'ils le feront à l'avenir, non, ça ne fonctionne pas.

* * ÉDITÉE

Exemple par google comment determinte si elle fonctionne ou non.

// checking by google 
 
if (!('webkitSpeechRecognition' in window)) { 
 
    console.log('GOOGLE: not working on this browser'); 
 
} else { 
 
    console.log('GOOGLE: working'); 
 
} 
 

 
//your way 
 
if (window.hasOwnProperty('webkitSpeechRecognition')) { 
 
    console.log('YOUR: working'); 
 
} else { 
 
    console.log('YOUR: not working on this browser'); 
 
}

+1

J'utilise Opera build 41.0.2353.69, et la page de démonstration de la parole tout simplement ne fonctionne pas, sans rien me dire. Et j'ai rigolé comment caniuse.com le signale comme "support partiel", comme Chrome. De toute façon, existe-t-il un moyen de détecter qu'il s'agit simplement d'une fonction de substitution? (Et pourquoi diable ne font-ils pas juste une exception ou quelque chose au lieu de mourir silencieusement?) –

+0

webkitSpeechRecognition - essaie de trouver un logiciel de reconnaissance vocale par défaut pour fonctionner. Chrome par défaut est en streaming par chrome pour google API de reconnaissance vocale (c'est pourquoi vous avez tellement de langues qui pourraient être reconnues). Sur les mobiles, il existe habituellement un logiciel de reconnaissance vocale, Opera sur cet appareil mobile devrait fonctionner, sur le bureau, il ne fonctionne pas. J'espère que cela aidera. –

+0

J'ai ajouté un exemple de google page de démonstration, très similaire à window.hasOwnProperty mais peut-être qu'il fait une différence, il détecte webkit sur mon Chrome, mais pas dans mon Opera 42. –