Tabla de contenido:

Asistente activado por voz - MÁX: 10 pasos
Asistente activado por voz - MÁX: 10 pasos

Video: Asistente activado por voz - MÁX: 10 pasos

Video: Asistente activado por voz - MÁX: 10 pasos
Video: COMO ACTIVAR GOOGLE ASSISTANT 2024 - ACTIVAR EL ASISTENTE DE GOOGLE CON LA VOZ 2024, Mes de julio
Anonim
Asistente activado por voz - MAX
Asistente activado por voz - MAX

Hola, en este Instructable, voy a hablar sobre cómo hacer un chat-bot MAX (¡¡¡me llamé a mí mismo !!!)

Con alguna implementación, puede hacer que este chatbot sea controlado por voz o con el uso de varios software puede hacerlo como un asistente de voz. Aquí no voy a hablar de eso, ya que todos pueden realizar esta implementación con facilidad.

Así que todos, por favor, apóyenme …….

Mi primer Instructable !!!!!!!

Sentirse nervioso por lo que va a pasar …………….

Paso 1: información sobre el concurso

Conociendo el concurso
Conociendo el concurso
Conociendo el concurso
Conociendo el concurso

Hola ingenieros y diseñadores ……..

A mí, un estudiante de Ciencias de la Computación, me encanta jugar y siempre me inspiro en las computadoras. Hablando brevemente, me encanta saber cómo funcionan todas estas cosas presentes. !!!) para buscar y aprender las cosas.

Así que un día llegué ante la pantalla de Instructables. Realmente me divirtió a través de varios proyectos con una variedad de ideas sobre varios aspectos, luego desde ese día sigo el rumbo, la página del concurso realmente me divirtió tanto en lo que se refiere a los premios como a los proyectos que han sido presentados por varias personas alrededor del mundo. mundo.

EL DESAFÍO ACTIVADO POR VOZ es mi primera plataforma en lo que respecta a la escritura de un Instructable.

Los premios me divirtieron mucho (¡¡Sí !!! Demasiado ……..).

También deseo compartir mi conocimiento en el campo de las Computadoras y su tecnología con otros sobre cómo funcionan realmente varias cosas.

En este Instructable, le muestro cómo construir su propio asistente activado por voz.

Dado que es mi primer Instructable, puede haber tantos errores (aunque creo que todos estos se han solucionado), así que perdónelo.

ASI QUE…

Empecemos el viaje ………………

Paso 2: ¿Dónde sabía yo acerca de las cosas?

¿Dónde sabía yo de las cosas?
¿Dónde sabía yo de las cosas?
¿Dónde sabía yo de las cosas?
¿Dónde sabía yo de las cosas?
¿Dónde sabía yo acerca de las cosas?
¿Dónde sabía yo acerca de las cosas?

Esta será una pregunta importante que creo que la mayoría de sus mentes puede que hayan pasado ………

Tengo una gran pasión por la Inteligencia Artificial [IA] desde mi educación, por eso he buscado mucho en busca de recursos para estudiar y desarrollar un modelo por mi cuenta.

Inicialmente fue muy difícil (condición real) ya que entendí que era un tema muy extenso que no es nada fácil de manejar.

Los libros que buscaron incluyen:

  1. Inteligencia artificial: un enfoque moderno
  2. Inteligencia artificial en la segunda edición del siglo XXI
  3. Aprendizaje profundo

Estos son muy buenos libros (sí, seguro) pero no es nada fácil entender lo que se ha escrito sobre eso, entonces lo dejé a un lado y sigo buscando los recursos que dan una idea breve sobre lo que se ha escrito. realmente representa y formas de conseguirlo.

Entonces encontré un interés en eso. Durante las vacaciones después de la escuela comencé a aprender sobre esto más profundamente.

En ese momento también aprendí varios lenguajes de programación (C ++, C, Python, Java….), Lo cual es muy interesante.

Al leer más sobre el tema, entendí una cosa importante ………………..

Los lenguajes de programación ES EL BÁSICO PARA CADA PROCESO DE APRENDIZAJE DE MÁQUINA

El aprendizaje automático es el proceso de aplicación de la IA

Con un gran conocimiento sobre lenguajes de programación y varias cosas que se pueden hacer dependiendo del programador para hacer una computadora que haga cualquier cosa por nosotros.

Así que decidí crear una buena base en los lenguajes que me hicieran comprender los conceptos proporcionados en el libro que ya he mencionado

Tú también puedes hacer eso ……

Hay tantos sitios web presentes en la web para enseñar lenguajes de programación libremente

Para que pueda navegar por Internet para comprender más sobre él si lo desea ………

Paso 3: Empecemos

Antes de comenzar a escribir el Instructable pensé en escribir algo que se entienda por:

  1. Personas que tienen experiencia con la codificación
  2. Personas sin experiencia en codificación

Así que creo que lo he hecho sin errores (con suerte).

Así que he decidido crear un bot de chat que pueda hablar con el usuario y pueda responder de acuerdo con nuestra charla.

El programa (conjunto de instrucciones) no puede pensar por sí solo. Tiene una base de datos (un lugar donde se han almacenado los datos) de hechos y reglas, que se buscan en el momento de hablar para dar la mejor respuesta posible que hace en conexión con el usuario.

Funciona mediante el proceso de emparejamiento según las cosas ingresadas, solo en casos raros una oración completa se empareja con una oración completa.

Paso 4: ¿Cómo funciona realmente?

Paso 1:

MAX averigua si el usuario ha dado alguna entrada nula. Si el usuario recibe una entrada de esa manera, toma el hecho de la base de datos estática para responder.

Oh, lo siento ……

Olvidé decir,

Base de datos estática: el lugar donde se almacenan las respuestas integradas. Respuestas como:

1. Cuando MAX no entiende de qué está hablando el usuario.

2. Cuando el usuario se repite.

3. Para declaraciones de saludo.

4. Cuando el usuario no escribe nada y sigue presionando Enter.

Palabra clave: palabras que tienen un significado especial.

Paso 2:

Hay algunas respuestas integradas que MAX puede reconocer rápida y fácilmente. Encuentra la presencia de dicha oración después de identificar la entrada del usuario y recuerda la palabra clave asociada.

Paso 3:

Si no se encuentra una oración incorporada incluso después de la fragmentación de la oración dada, MAX busca la palabra clave específica para definir el contexto. Si no se encuentra ningún contexto, el siguiente objetivo es hacer que el usuario hable sobre el tema de una manera más deliberada y específica.

Paso 4:

De la Base de Datos Estática de la que ya hemos hablado, recogerá la respuesta que depende de lo que haya hablado el usuario.

Paso 5:

YO, hay alguna necesidad de cambiar las palabras, lo hará por sí mismo (como Conversión de MI a TU, etc.)

Paso 5: Codifiquemos …………

Estoy usando Turbo C IDE 3.0 ya que este es el IDE [Entorno de desarrollo integrado]

Antes de la codificación, veamos la estructura de un archivo de datos de muestra.

MAX reconoce ciertas palabras clave.

Si estas palabras clave se encuentran en la entrada proporcionada por el usuario, entonces se elige una respuesta correspondiente del archivo de datos y se selecciona y se muestra en la pantalla.

Una palabra clave está separada en el archivo de datos de las respuestas por @ KWD @ token.

Token es una parte mínima de todos los aspectos de la programación.

Este token indica que la siguiente línea es una palabra clave y no una respuesta.

@ KWD @ HOLA

HOLA, CÓMO ESTÁS

HOLA, CARIÑO !

ESTOY BIEN

¿CÓMO FUE TU TRABAJO?

¿CUANTOS AÑOS TIENES?

@ KWD @

VOY A

USTED LO HARÁ. YO TAMBIÉN LO CREO …

¿SERÁS CAPAZ DE HACERLO?

¿CONFIARÁS EN MÍ?

@ KWD @

ESTÁ SEGURO ?

CÓMO PUEDES ESTAR TAN SEGURO ?

@ KWD @

NO

PARECE SER MUY PESIMISTA.

NUNCA DIGAS NO…

NUNCA DIGAS NUNCA

NUNCA SEA RUDO

¡¡¡NUNCA SEA ARROGANTE !!!!

NUNCA DIGO QUE NO PUEDO HACER ESTO

NUNCA SEA OPTIMISTA

@ KWD @

COMPUTADORA

SÉ CÓMO TRABAJAR EN COMPUTADORA.

ACTUALMENTE ESTÁ UTILIZANDO UNA COMPUTADORA. DERECHA ?

Por ejemplo, 'Hola', del diccionario anterior, MAX dará una de las siguientes respuestas:

¡Hola, cómo estás, querida!

ESTOY BIEN

¿CÓMO FUE TU TRABAJO?

¿CUANTOS AÑOS TIENES?

Paso 6: Clases

Una vez que esto esté claro, definamos ahora las estructuras de datos que usaremos.

Creamos dos clases:

progstr: se utiliza para almacenar la información relacionada con la entrada del usuario.

resp: se utiliza para almacenar la información sobre las diversas respuestas

class progstr {

público:

char userip [MAX_USER_INPUT];

char palabra clave [30];

int keyfound;

int keyno;

int nullip;

// constructor

progstr () {keyno = -1; nullip = 0; keyfound = 0;

}

} ip;

clase resp

{

int tot_resp;

int last_resp;

char responde [MAX_RESP_NO] [MAX_RESP_LEN];

char palabra [MAX_KWD_LEN];

público:

// constructor

resp ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

return last_resp;

}

contraseña vacía (char str [MAX_KWD_LEN])

{

strcpy (palabra, str);

}

char * getword ()

{

palabra de retorno;

}

dirección vacía (char str [MAX_RESP_LEN])

{

strcpy (responde [++ last_resp], str);

}

// definido más tarde

void display_resp (int num);

void quit_display_resp (int num);

};

Mirando a primera clase, El userip de la matriz de caracteres se utiliza para almacenar la frase proporcionada por el usuario.

Se utiliza otra palabra clave de matriz para almacenar la palabra clave, si la hay, que se encuentra en esa entrada. Si se encuentra una palabra clave, convertimos int keyfound en 1; de lo contrario, permanece 0, ya que se inicializa en 0 en el Constructor.

keyno almacena el número de clave correspondiente de la palabra clave correspondiente.

nullip indica si el usuario ha dado alguna entrada nula, es decir, solo está presionando enter sin hacer nada más.

Pasemos ahora a la segunda clase, resp.

El primer miembro de datos, tot_resp indica el número de respuestas totales para una palabra clave determinada.

Las respuestas se almacenan realmente en las respuestas [MAX_RESP_NO] [MAX_RESP_LEN] y la palabra clave correspondiente se almacena en la palabra de matriz.

Constructor: se utiliza para inicializar el número total de respuestas a 0. El motivo por el que last_resp se inicializa en -1 quedará claro cuando observe la función add_resp.

int getcount ():

Esta función se utiliza para obtener un recuento de cuántas respuestas hay para una palabra clave determinada.

contraseña vacía (char str [MAX_KWD_LEN]):

Esto se usa para agregar una palabra clave.

char * getword ():

Se usa para devolver la palabra clave para un objeto particular de clase resp.

dirección vacía (…):

Se utiliza para agregar una respuesta correspondiente a una palabra clave determinada.

void display_resp (int):

Esto se usa para mostrar la respuesta al usuario correspondiente a un número de índice dado para las respuestas. (¡de hecho, hace más que eso!).

void quit_display_resp (int):

La diferencia entre esta función y la función anterior es que se usa al final cuando el usuario está saliendo. Por lo tanto, no devuelve el mensaje al usuario.

Paso 7: funciones

void initialize_global ()

{

strcpy (palabra en [0], "SON");

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

strcpy (palabra en [1], "AM");

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

strcpy (palabra en [2], "ESTABAN");

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

strcpy (palabra en [3], "ERA");

strcpy (wordout [3], "ERA");

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

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

strcpy (palabra en [5], "yo");

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

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

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

strcpy (palabra en [7], "MI");

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

strcpy (wordin [8], "YO TENGO");

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

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

strcpy (wordout [9], "TENGO");

strcpy (palabra en [10], "SOY");

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

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

strcpy (wordout [11], "SOY");

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

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

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

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

}

Escribamos ahora una función para mostrar las respuestas al usuario. La primera instrucción if en el bucle for se usa para cometer un error de escritura deliberado para que parezca más humano;-). Se elige un carácter al azar por error de escritura. Los casos especiales como Nueva línea y Retroceso se consideran por separado. (¿Piensa por qué?). Ahora presento algo nuevo. Un carácter especial - *. Char * representa todo el texto que se encuentra DESPUÉS de la palabra clave identificada y antes de uno de los siguientes signos de puntuación.

Por ejemplo, considere la entrada del usuario

AMIT> ¿PUEDO IR A INDORE MAÑANA?

MAX> ¿Y SI NO VAS A INDORE MAÑANA?

La parte subrayada no se almacena en el diccionario, sino que se toma de la entrada del usuario. En el archivo MAX. Dat, almacenamos esta información como

YO PUEDO

Y SI NO LO HACE *

Star (*) le pide al programa que simplemente copie lo que se escriba después de la palabra clave (aquí CAN I) en la entrada del usuario, tal como está. Espero que ahora la función de * como palabra clave especial esté clara. Entonces, consideremos un caso más complicado.

AMIT> ¿PUEDO IR DE COMPRAS?

MAX> ¿Y SI NO VAS DE COMPRAS?

También debemos realizar alguna transformación. Cuando pensamos en la transformación, la oración se divide en las siguientes 3 secciones:

  • Texto antes de la palabra de transposición. (aquí, IR DE COMPRAS CON)
  • La palabra clave transpuesta. (aquí, TU, en lugar de MI)
  • Texto después de la palabra clave de transposición. (Aquí yo ?)

Paso 8: Los casos pueden ser resueltos por ………

Paso 9: búsqueda de una palabra clave en la entrada del usuario

MAX_KEY indica el número de palabras clave en el archivo DAT.

Aquí simplemente buscamos si la palabra clave está presente en la entrada del usuario.

Paso 10: Conclusión

Eso es todo ………

Lo has hecho !!!!!!!

Creo que todos entendieron las cosas claramente …

Recomendado: