Table des matières:

Assistant à commande vocale - MAX : 10 étapes
Assistant à commande vocale - MAX : 10 étapes

Vidéo: Assistant à commande vocale - MAX : 10 étapes

Vidéo: Assistant à commande vocale - MAX : 10 étapes
Vidéo: 10 Commandes Vocales TESLA à connaître 2024, Juillet
Anonim
Assistant à commande vocale - MAX
Assistant à commande vocale - MAX

Hé dans ce Instructable, je vais parler d'un comment faire un chat-bot MAX (nommé moi-même !!!)

Avec une certaine implémentation, vous pouvez faire en sorte que ce chatbot soit contrôlé par la voix ou avec l'utilisation de divers logiciels, vous pouvez le faire en tant qu'assistant vocal. Je ne vais pas en parler ici car tout le monde peut vraiment faire cette implémentation facilement.

Alors tout le monde, s'il vous plaît, soutenez-moi…….

Mon premier Instructable !!!!!!!

Se sentir nerveux sur ce qui va se passer …………….

Étape 1: Connaître le concours

Connaître le concours
Connaître le concours
Connaître le concours
Connaître le concours

Salut les ingénieurs et les concepteurs……..

Moi-même, étudiant en informatique, j'adore jouer à des jeux et j'ai toujours été inspiré par les ordinateurs. En parlant brièvement, j'aime savoir comment fonctionnent toutes ces choses présentes. !!!) pour chercher et apprendre les choses.

Alors un jour, je suis venu devant l'écran d'Instructables. Cela m'a vraiment amusé à travers divers projets avec une variété d'idées sur divers aspects. Ensuite, à partir de ce jour, je suis resté sur la bonne voie. La page du concours m'a vraiment amusé à la fois par les prix et les projets qui ont été soumis par diverses personnes autour du monde.

VOICE ACTIVATED CHALLENGE est ma première plate-forme en ce qui concerne l'écriture d'un Instructable.

Les prix m'ont beaucoup amusé(Ouais !!! Trop……..).

Je souhaite également partager mes connaissances dans le domaine de l'informatique et de sa technologie avec d'autres sur le fonctionnement réel de diverses choses.

Dans ce Instructable, je vous montre comment construire votre propre assistant à commande vocale.

Comme il s'agit de mon premier Instructable, il peut y avoir tellement d'erreurs (même si je pense que tout cela a été corrigé), alors pardonnez pour cela.

DONC…

Commençons le voyage………………

Étape 2: Où ai-je su les choses ?

Où ai-je su les choses ?
Où ai-je su les choses ?
Où ai-je su les choses ?
Où ai-je su les choses ?
Où ai-je su les choses ?
Où ai-je su les choses ?

Ce sera une question majeure, je pense que la plupart de vos esprits peuvent être passés par………

J'ai une grande passion pour l'intelligence artificielle [IA] depuis ma scolarité, à partir de laquelle j'ai beaucoup cherché des ressources pour étudier et développer un modèle par moi-même.

Au départ c'était très difficile car j'ai compris que c'était un sujet très vaste qui n'est pas du tout facile à traiter.

Les livres recherchés incluent:

  1. Intelligence Artificielle Une Approche Moderne
  2. Intelligence. Artificielle.au.21e.siècle.2e. Édition.
  3. L'apprentissage en profondeur

Ce sont de très bons livres (oui sûrement) mais ce n'est pas du tout facile de comprendre les choses qui ont été écrites là-dessus. cela représente vraiment et les moyens d'y parvenir.

Ensuite, j'ai trouvé un intérêt pour cela. Tout au long des vacances après l'école, j'ai commencé à en apprendre plus à ce sujet.

A cette époque j'ai également appris divers langages de programmation (C++, C, Python, Java….), ce qui aussi très intéressant.

En lisant davantage sur le sujet, j'ai compris une chose importante………………..

Les langages de programmation EST LA BASE DE CHAQUE PROCESSUS D'APPRENTISSAGE MACHINE

L'apprentissage automatique est le processus d'application de l'IA

Avec une grande compréhension des langages de programmation et de diverses choses qui peuvent être faites selon le programmeur pour faire un ordinateur pour faire n'importe quoi pour nous.

J'ai donc décidé de créer une bonne base sur les langues qui m'ont fait comprendre les concepts fournis sur le livre que j'ai déjà évoqué

Vous aussi, vous pouvez le faire……

Il y a tellement de sites Web présents sur le Web pour enseigner librement les langages de programmation

Vous pouvez donc surfer sur internet pour en savoir plus si vous le souhaitez………

Étape 3: Commençons

Moi avant de commencer à écrire l'Instructable j'ai pensé à écrire quelque chose qui soit compris par:

  1. Les personnes qui ont une expérience avec le codage
  2. Personnes sans aucune expérience de codage

Je pense donc avoir fait la chose sans aucune erreur (espérons-le).

J'ai donc décidé de créer un bot de discussion qui peut parler à l'utilisateur et peut répondre en fonction de notre conversation.

Le programme (ensemble d'instructions) ne peut pas penser tout seul. Il dispose d'une base de données (un endroit où les données ont été stockées) de faits et de règles, qui sont recherchés au moment de parler pour donner la meilleure réponse possible en relation avec l'utilisateur.

Cela fonctionne en faisant correspondre le processus en fonction des éléments entrés, ce n'est que dans de rares cas qu'une phrase entière est comparée à une phrase complète.

Étape 4: Comment ça marche réellement ?

Étape 1:

MAX découvre si l'utilisateur a donné une entrée nulle. Si l'utilisateur a fourni une entrée de telle manière, il prend le fait de la base de données statique pour répondre.

Oh pardon ……

J'ai oublié de dire,

Base de données statique: L'endroit où les réponses intégrées sont stockées. Des réponses comme:

1. Lorsque MAX ne comprend pas de quoi parle l'utilisateur.

2. Lorsque l'utilisateur se répète.

3. Pour les messages d'accueil.

4. Lorsque l'utilisateur ne tape rien et continue d'appuyer sur Entrée.

Mot-clé: mots ayant une signification particulière.

Étape 2:

Il existe certaines réponses intégrées que MAX peut reconnaître facilement et facilement. Il détecte la présence d'une telle phrase après avoir identifié l'entrée des utilisateurs et se souvient du mot-clé associé.

Étape 3:

Si aucune phrase intégrée n'est trouvée même après la fragmentation de la phrase donnée, alors MAX recherche le mot-clé spécifique pour définir le contexte. Si aucun contexte n'est trouvé, l'objectif suivant est de faire en sorte que l'utilisateur parle du sujet plus délibérément d'une manière spécifique.

Étape 4:

À partir de la base de données statique dont nous avons déjà parlé, il récupérera la réponse qui dépend de ce dont l'utilisateur a parlé.

Étape 5:

I, il y a un besoin de changer les mots, il le fera lui-même (comme Conversion de MON en VOTRE etc….)

Étape 5: Laissez-nous coder …………

J'utilise Turbo C IDE 3.0 car il s'agit de l'IDE [environnement de développement intégré]

Avant le codage, voyons la structure d'un exemple de fichier de données.

MAX reconnaît certains mots-clés.

Si ces mots-clés sont trouvés dans l'entrée fournie par l'utilisateur, alors une réponse correspondante est choisie dans le fichier de données et est choisie et affichée à l'écran.

Un mot-clé est séparé dans le fichier de données des réponses par le jeton @KWD@.

Le jeton est la plus petite partie de tous les aspects de la programmation.

Ce jeton indique que la ligne suivante est un mot-clé et non une réponse.

@KWD@ BONJOUR

SALUT COMMENT ÇA VA

BONJOUR CHÉRI !

JE VAIS BIEN

COMMENT ÉTAIT VOTRE TRAVAIL ?

QUEL ÂGE AS-TU?

JE LE FERAI

VOUS LE FAIRE. JE LE CROIS AUSSI…

SEREZ-VOUS CAPABLE DE LE FAIRE ?

ME CONFIANCEZ-VOUS ?

OUI

ES-TU SÛR ?

COMMENT PEUX-TU ÊTRE SI SÛR ?

NON

VOUS SEMBLEZ ÊTRE TRÈS PESSIMISTE.

NE DIS JAMAIS NON…

NE JAMAIS DIRE JAMAIS

NE JAMAIS ÊTRE IMPOSSIBLE

NE SOYEZ JAMAIS ARROGANT !!!!

NE JAMAIS DIRE QUE JE NE PEUX PAS FAIRE CA

NE JAMAIS ETRE OPTIMISTE

ORDINATEUR

JE SAIS TRAVAILLER SUR ORDINATEUR.

VOUS UTILISEZ ACTUELLEMENT UN ORDINATEUR. DROIT ?

Par exemple, 'Bonjour', dans le dictionnaire ci-dessus, MAX donnera l'une des réponses suivantes:

BONJOUR, COMMENT VA VOUS BONJOUR !

JE VAIS BIEN

COMMENT ÉTAIT VOTRE TRAVAIL ?

QUEL ÂGE AS-TU?

Étape 6: Cours

Une fois que cette chose est claire, définissons maintenant les structures de données que nous utiliserons.

Nous créons deux classes:

progstr - Ceci est utilisé pour stocker les informations relatives à l'entrée de l'utilisateur.

resp - Ceci est utilisé pour stocker les informations sur les différentes réponses

classe progstr{

Publique:

char userip[MAX_USER_INPUT];

mot-clé char[30];

int keyfound;

int keyno;

int nullip;

// constructeur

progstr() { keyno=-1; nullip=0; clé trouvée=0;

}

}ip;

resp de classe

{

int tot_resp;

int last_resp;

char répond[MAX_RESP_NO][MAX_RESP_LEN];

mot de caractère[MAX_KWD_LEN];

Publique:

// constructeur

resp()

{

tot_resp=0;

last_resp=-1;

}

int getcount()

{

retourner last_resp;

}

void addword(char str[MAX_KWD_LEN])

{

strcpy(mot, str);

}

char * getword()

{

mot de retour;

}

void address(char str[MAX_RESP_LEN])

{

strcpy(répondre[++last_resp], str);

}

// défini plus tard

void display_resp(int num);

void quit_display_resp(int num);

};

Donnant sur la première classe, Le tableau de caractères userip est utilisé pour stocker la phrase fournie par l'utilisateur.

Un autre mot-clé de tableau est utilisé pour stocker le mot-clé, le cas échéant, trouvé dans cette entrée. Si un mot-clé est trouvé, nous mettons int keyfound à 1 else, il reste 0, car il est initialisé à 0 dans le constructeur.

keyno stocke le numéro de clé correspondant du mot-clé correspondant.

nullip indique si l'utilisateur a donné une entrée Null, c'est-à-dire qu'il appuie simplement sur Entrée sans rien faire d'autre.

Venons-en maintenant à la deuxième classe, resp.

Le premier membre de données, tot_resp indique le nombre total de réponses pour un mot-clé donné.

Les réponses sont en fait stockées dans les réponses[MAX_RESP_NO][MAX_RESP_LEN] et le mot clé correspondant est stocké dans le mot du tableau.

Constructeur: Ceci est utilisé pour initialiser le nombre total de réponses à 0. Pourquoi last_resp est initialisé à -1 sera clair lorsque vous regardez la fonction add_resp.

int getcount():

Cette fonction est utilisée pour obtenir le nombre de réponses pour un mot clé donné.

void addword(char str[MAX_KWD_LEN]):

Ceci est utilisé pour ajouter un mot-clé.

char * getword():

Utilisé pour retourner le mot-clé pour un objet particulier de la classe resp.

adresse vide (…):

Ceci est utilisé pour ajouter une réponse correspondant à un mot-clé donné.

void display_resp(int):

Ceci est utilisé pour afficher la réponse à l'utilisateur correspondant à un numéro d'index donné pour les réponses. (en fait ça fait plus que ça !).

void quit_display_resp(int):

La différence entre cette fonction et la fonction ci-dessus est qu'elle est utilisée à la fin lorsque l'utilisateur quitte. Ainsi, il ne renvoie pas l'invite à l'utilisateur.

Étape 7: Fonctions

void initialize_global()

{

strcpy(wordin[0], "SONT");

strcpy(wordout[0], "AM");

strcpy(wordin[1], "AM");

strcpy(wordout[1], "SONT");

strcpy(wordin[2], "ÉTAIT");

strcpy(wordout[2], "WAS");

strcpy(wordin[3], "WAS");

strcpy(wordout[3], "ÉTAIT");

strcpy(wordin[4], "VOUS");

strcpy(wordout[4], "ME");

strcpy(wordin[5], " je ");

strcpy(wordout[5], "VOUS");

strcpy(wordin[6], "VOTRE");

strcpy(wordout[6], "MON");

strcpy(wordin[7], "MON");

strcpy(wordout[7], "VOTRE");

strcpy(wordin[8], "J'AI");

strcpy(wordout[8], "VOUS");

strcpy(wordin[9], "VOUS");

strcpy(wordout[9], "JE VE");

strcpy(wordin[10], "JE SUIS");

strcpy(wordout[10], "VOUS");

strcpy(wordin[11], "VOUS");

strcpy(wordout[11], "JE SUIS");

strcpy(wordin[12], "ME");

strcpy(wordout[12], "VOUS");

strcpy(wordin[13], "VOUS");

strcpy(wordout[13], "ME");

}

Écrivons maintenant une fonction pour afficher les réponses à l'utilisateur. La première instruction if dans la boucle for est utilisée pour faire une erreur de frappe délibérée pour la faire apparaître plus humaine comme;-). Un caractère est choisi au hasard pour une erreur de frappe. Les cas particuliers tels que Nouvelle ligne et Retour arrière sont considérés séparément. (Pensez pourquoi ?). Maintenant, je présente quelque chose de nouveau. Un caractère spécial - *. Le caractère * représente tout le texte trouvé APRÈS le mot-clé identifié, et avant l'un des signes de ponctuation suivants.

Par exemple, considérons l'entrée de l'utilisateur

AMIT > PUIS-JE ALLER À INDORE DEMAIN ?

MAX > ET SI VOUS N'ALLEZ PAS À INDORE DEMAIN ?

La partie soulignée n'est pas stockée dans le dictionnaire, mais provient plutôt de la saisie de l'utilisateur. Dans le fichier MAX. Dat, nous stockons ces informations sous la forme

PUIS-JE

ET SI VOUS NE FAITES PAS *

L'étoile (*) demande au programme de copier simplement ce qui est tapé après le mot-clé (ici CAN I) dans l'entrée utilisateur, tel quel. J'espère que maintenant la fonction de * en tant que mot-clé spécial est claire. Considérons donc un cas plus compliqué.

AMIT > PUIS-JE ALLER SHOPPING ?

MAX > ET SI VOUS N'ALLEZ PAS AU SHOPPING ?

Nous devons également effectuer une certaine transformation. Lorsque nous pensons à la transformation, la phrase est divisée en 3 sections suivantes:

  • Texte avant mot de transposition. (ici, ALLER AU SHOPPING AVEC)
  • Le mot-clé Transposé. (ici, VOTRE, à la place de MON)
  • Texte après transposition Mot-clé. (ici je ?)

Étape 8: Les cas peuvent être traités par………

Étape 9: Recherche d'un mot-clé dans la saisie de l'utilisateur

MAX_KEY indique le nombre de mots-clés dans le fichier DAT.

Ici, nous cherchons simplement si le mot-clé est présent dans la saisie de l'utilisateur.

Étape 10: Conclusion

C'est tout ………

Vous l'avez fait !!!!!!!

Je pense que tout le monde a bien compris les choses……

Conseillé: