Question System.Speech.Recognition autres correspondances et valeurs de confiance


J'utilise le System.Speech.Recognition espace de noms pour reconnaître une phrase prononcée. Je suis intéressé par les phrases alternatives fournies par le programme de reconnaissance, ainsi que par ses scores de confiance. De la documentation pour le [RecognitionResult.Alternates][1] propriété:

Reconnaissance Les suppléants sont classés par les valeurs de leur confiance   Propriétés. La valeur de confiance d'une phrase donnée indique la   probabilité que la phrase corresponde à l'entrée. La phrase avec le   valeur de confiance la plus élevée est la phrase qui correspond le plus probablement à la   contribution.

Chaque valeur de confiance doit être évaluée individuellement et sans   référence aux valeurs de confiance des autres suppléants.

Cependant, lorsque j'imprime le texte reconnu avec confiance et que les variantes correspondent à leur confiance, je suis confronté à deux propriétés que je ne comprends pas: premièrement, les alternatives ne sont pas ordonnées en fonction de la confiance (même si la première text), et deuxièmement, ce qui est un problème plus important pour moi, le texte reconnu n’est pas l’alternative avec le score le plus élevé, ce qui semble contredire la documentation citée ci-dessus.

Mon échantillon de code (incomplet) provenant de SpeechRecognized gestionnaire d'événements:

Console.WriteLine("Recognized text =  {0}, score = {1}", e.Result.Text, e.Result.Confidence); 
// Display the recognition alternates for the result.
foreach (RecognizedPhrase phrase in e.Result.Alternates)
{
    Console.WriteLine(" alt({0}) {1}", phrase.Confidence, phrase.Text);
}

et la sortie correspondante:

Recognized text =  She had said that fit and Gracie Wachtel are all year, score = 0.287724
alt(0.287724) She had said that fit and Gracie Wachtel are all year
alt(0.287724) she had said that fit and gracie wachtel are all year
alt(0.2955212) she had said that faith and gracie wachtel are all year
alt(0.287133) she had said that fit and gracie Wachtell are all year
alt(0.1644379) she had said that fit and gracie wachtel earlier
alt(0.3254312) jihad said that fit and gracie wachtel are all year
alt(0.2726361) she had said that fit and gracie wachtel are only are
alt(0.2867217) she had said that fail and gracie wachtel are all year
alt(0.2565451) she had said that fit and gracie watchful are all year
alt(0.2854537) she had said that fate and gracie wachtel are all year

MODIFIER Pour clarifier la signification du score de confiance et pour expliquer pourquoi mes résultats contredisent la documentation, consultez les informations suivantes dans la documentation de RecognizedPhrase.Confidence Property. Les parties en gras sont mon ajout:

Les scores de confiance n'indiquent pas la probabilité absolue qu'un   phrase a été reconnue correctement. Au lieu, les scores de confiance fournissent un   mécanisme de comparaison de la précision relative de la reconnaissance multiple   alterne pour une entrée donnée. Cela facilite le retour le plus   résultat de reconnaissance précis. Par exemple, si une phrase reconnue a un   score de confiance de 0,8, cela ne signifie pas que la phrase a un 80%   chance d'être la correspondance correcte pour l'entrée. Cela signifie que le   phrase est plus susceptible d'être la correspondance correcte pour l'entrée que d'autres   des résultats dont les scores de confiance sont inférieurs à 0,8.

Un score de confiance en soi n'est pas significatif à moins que vous n'ayez   des résultats alternatifs à comparer, soit du même   opération de reconnaissance ou de reconnaissances précédentes de la même entrée.    Les valeurs sont utilisées pour classer les autres phrases candidates renvoyées par   la propriété Alternates sur les objets RecognitionResult.

Les valeurs de confiance sont relatives et unique à chaque moteur de reconnaissance.   Les valeurs de confiance renvoyées par deux moteurs de reconnaissance différents ne peuvent pas   être comparé de manière significative.

Un moteur de reconnaissance vocale peut attribuer un score de confiance faible à   saisie orale pour diverses raisons, y compris les interférences de fond,   inarticuler la parole, ou des mots ou des séquences de mots imprévus. Si ton   l'application utilise une instance SpeechRecognitionEngine, vous pouvez   modifier le niveau de confiance auquel la saisie vocale est acceptée ou   rejeté avec l'une des méthodes UpdateRecognizerSetting. Confiance   les seuils pour le dispositif de reconnaissance partagé, gérés par SpeechRecognizer, sont   associé à un profil utilisateur et stocké dans le registre Windows.   Les applications ne doivent pas écrire de modifications au registre pour le   propriétés du dispositif de reconnaissance partagé.

La propriété Alternates de l'objet RecognitionResult contient un   collection ordonnée d'objets RecognizedPhrase, chacun d'eux étant un   correspondance possible pour l'entrée dans le dispositif de reconnaissance. Les suppléants sont   commandé du plus haut au plus bas confiance.


12
2018-05-01 09:37


origine


Réponses:


Je ne peux que vous donner une réponse générique (je ne connais pas le code de la reconnaissance vocale de Microsoft) La reconnaissance utilise de nombreux algorithmes pour approcher la meilleure solution. Dans un monde parfait, chaque algorithme devrait pouvoir pondérer le score de confiance de la phrase convertie. En fait, ce n'est presque jamais le cas:

Chaque algorithme est défectueux et donner son impact exact sur la confiance dans la conversion peut être un véritable casse-tête.

La confiance globale en phrases est une combinaison arithmétique de chaque partie. Généralement beaucoup plus simple que le schéma de confiance interne.

Certains algorithmes utilisés, comme la reconnaissance des noms propres, ne changent pas nécessairement la confiance (en particulier en une seule phrase isolée).

La confiance se mesure à plusieurs niveaux (voix, mots, structure des phrases ...) Quelle sera la confiance d'une reconnaissance vocale parfaite avec une structure de phrases incohérente?

Les algorithmes de tri qui déplacent la meilleure reconnaissance en haut de la liste ne modifient généralement pas la confiance mais ne trient / excluent que les alternatives.

Donc, la documentation est correcte, les confidences ne peuvent pas être comparées entre les suppléants.

Quel est l’utilisation potentielle de la confiance (sauf le fait que les auteurs veulent nous dire: nous pouvons vous donner une utilisation facile d’une technologie très complexe et approximative). Presque aucun. Vous pouvez éventuellement éliminer des niveaux de confiance trop bas (inférieurs à un certain seuil), sauf si aucune confiance n'atteint ce seuil.


2
2018-05-08 09:23



La propriété de confiance ici est la "probabilité"valeur de sortie du modèle interne (en général, la modélisation du langage est faite en composant des" modèles mathématiques d'intelligence artificielle "comme Modèles de Markov cachés ou MFCC).

MAIS le SDK de reconnaissance vocale vous présente une liste basée sur une confiance différente basée sur la sortie des modèles et vérifie d'autres paramètres supplémentaires. Pour ce SDK, la conformité à une règle bien formée dans sa grammaire.


2
2018-05-09 18:14