Índice:

Assistente ativado por voz - MÁX: 10 etapas
Assistente ativado por voz - MÁX: 10 etapas

Vídeo: Assistente ativado por voz - MÁX: 10 etapas

Vídeo: Assistente ativado por voz - MÁX: 10 etapas
Vídeo: Como Ativar o "OK GOOGLE" Assistente de Voz do Android 2024, Julho
Anonim
Assistente ativado por voz - MAX
Assistente ativado por voz - MAX

Ei neste Instructable vou falar sobre como fazer um chat-bot MAX (me chamei !!!)

Com alguma implementação, você pode tornar esse chatbot controlado por voz ou, com o uso de vários softwares, pode torná-lo um assistente de voz. Não vou falar sobre isso aqui, já que qualquer um pode realmente fazer essa implementação com facilidade.

Então, todos, por favor, me apoiem …….

Meu primeiro Instructable !!!!!!!

Sentindo-se nervoso com o que vai acontecer …………….

Etapa 1: Saber mais sobre o concurso

Saber mais sobre o concurso
Saber mais sobre o concurso
Saber mais sobre o concurso
Saber mais sobre o concurso

Olá, engenheiros e designers ……..

Eu mesmo, um estudante de Ciência da Computação, adoro jogar e sempre me inspiro em computadores. Falando brevemente, adoro saber como funcionam todas essas coisas do presente. Então, como motivo, continuei procurando, pesquisando no Google (na verdade eu costumava usar o Yahoo também !!! !!!) para pesquisar e aprender as coisas.

Então um dia cheguei diante da tela do Instructables. Realmente me divertiu por meio de vários projetos com uma variedade de ideias em vários aspectos. A partir desse dia, eu mantive o controle. A página do concurso realmente me divertiu tanto preocupada com os prêmios quanto com os projetos que foram apresentados por várias pessoas ao redor do mundo.

VOICE ACTIVATED CHALLENGE é minha primeira plataforma no que diz respeito a escrever um Instructable.

Os prêmios me divertiram muito (Sim !!! Demais ……..).

Também desejo compartilhar meu conhecimento na área de Computadores e sua tecnologia com outras pessoas sobre como várias coisas realmente funcionam.

Neste Instructable, mostro como construir seu próprio assistente ativado por voz.

Como é meu primeiro Instructable, pode haver muitos erros (embora eu ache que todos eles foram corrigidos), então perdoe por isso.

TÃO…

Vamos começar a jornada ………………

Etapa 2: Onde eu sabia sobre as coisas?

Onde eu sabia sobre as coisas?
Onde eu sabia sobre as coisas?
Onde eu sabia sobre as coisas?
Onde eu sabia sobre as coisas?
Onde eu sabia sobre as coisas?
Onde eu sabia sobre as coisas?

Esta será uma questão importante que eu acho que a maioria de suas mentes deve ter passado ………

Tenho muita paixão por Inteligência Artificial [IA] desde a minha formação, a partir disso tenho pesquisado muito em busca de recursos para estudar e desenvolver um modelo por conta própria.

Inicialmente foi muito difícil (condição verdadeira), pois entendi que era um assunto muito vasto e nada fácil de lidar.

Os livros pesquisados incluem:

  1. Inteligência Artificial Uma Abordagem Moderna
  2. Artificial. Intelligence.no.21º. Século.2º. Edição
  3. Aprendizado Profundo

São livros muito bons (sim, com certeza), mas não são nada fáceis de entender o que foi escrito sobre eles. Então, eu os mantive de lado e fui buscar os recursos que nos dão uma breve ideia sobre o que realmente representam e maneiras de chegar a isso.

Aí me interessei por isso. Ao longo das férias depois da escola, comecei a aprender mais a respeito.

Naquela época também aprendi várias linguagens de programação (C ++, C, Python, Java….), Que também são muito interessantes.

Ao ler mais sobre o assunto, entendi uma coisa importante ………………..

As linguagens de programação SÃO O BÁSICO PARA TODOS OS PROCESSOS DE APRENDIZAGEM DA MÁQUINA

O aprendizado de máquina é o processo de aplicação da IA

Com um ótimo conhecimento de linguagens de programação e várias coisas que podem ser feitas dependendo do programador para fazer um computador fazer qualquer coisa por nós.

Portanto, decidi criar uma boa base nas linguagens que me fizessem entender os conceitos fornecidos no livro que já mencionei

Você também pode fazer isso …

Existem tantos sites na web para ensinar linguagens de programação gratuitamente

Então você pode navegar na internet para entender mais sobre isso, se desejar ………

Etapa 3: vamos começar

Antes de começar a escrever o Instructable, pensei em escrever algo que pudesse ser compreendido por:

  1. Pessoas que têm experiência com codificação
  2. Pessoas sem qualquer experiência de codificação

Então eu acho que fiz a coisa sem erros (espero).

Portanto, decidi construir um bot de chat que pode falar com o usuário e pode responder de acordo com nossa conversa.

O programa (conjunto de instruções) não consegue pensar por conta própria. Possui um banco de dados (um local onde foram armazenados dados) de fatos e regras, que são pesquisados na hora da conversa para dar a melhor resposta possível que se faz em relação ao usuário.

Ele funciona por meio do processo de correspondência dependendo das coisas inseridas, apenas em casos raros, uma frase inteira é combinada com uma frase completa.

Etapa 4: Como isso realmente funciona?

Passo 1:

MAX descobre se o usuário forneceu alguma entrada nula. Se o usuário fornecer a entrada de tal forma, ele pega o fato do banco de dados estático para responder.

Oh, desculpe ……

Eu esqueci de dizer,

Banco de dados estático: o local onde as respostas embutidas são armazenadas. Respostas como:

1. Quando o MAX não entende sobre o que o usuário está falando.

2. Quando o usuário se repete.

3. Para declarações de saudação.

4. Quando o usuário não digita nada e simplesmente continua pressionando Enter.

Palavra-chave: palavras com significado especial.

Passo 2:

Existem algumas respostas embutidas que o MAX pode reconhecer rápida e facilmente. Ele encontra a presença de qualquer frase após identificar a entrada do usuário e se lembra da palavra-chave associada.

Etapa 3:

Se nenhuma frase embutida for encontrada, mesmo após a fragmentação da frase fornecida, o MAX procura a palavra-chave específica para definir o contexto. Se nenhum contexto for encontrado, o próximo objetivo é fazer com que o usuário fale sobre o tópico mais deliberadamente de uma maneira específica.

Passo 4:

Do banco de dados estático de que já falamos, ele pegará a resposta que depende do que o usuário falou.

Etapa 5:

Se houver necessidade de alterar as palavras, ele o fará por si mesmo (como Conversão de MEU para SEU etc …)

Etapa 5: deixe-nos codificar …………

Estou usando o Turbo C IDE 3.0 porque este é o IDE [Integrated Developmental Environment]

Antes da codificação, vamos ver a estrutura de um arquivo de dados de amostra.

MAX reconhece certas palavras-chave.

Se essas palavras-chave forem encontradas na entrada fornecida pelo usuário, uma resposta correspondente é escolhida do arquivo de dados e é escolhida e exibida na tela.

Uma palavra-chave é separada no arquivo de dados das respostas pelo token @ KWD @.

O token é a menor parte de todos os aspectos da programação.

Este token indica que a próxima linha é uma palavra-chave e não uma resposta.

@ KWD @ OLÁ

OI COMO VOCÊ ESTÁ

OLÁ QUERIDO !

ESTOU BEM

COMO FOI SEU TRABALHO?

QUANTOS ANOS VOCÊ TEM?

@ KWD @

EU VOU

VOCÊ FARÁ ISSO. EU ACREDITO DEMASIADO …

VOCÊ PODERÁ FAZER ISSO?

VOCÊ VAI CONFIAR EM MIM?

@ KWD @

SIM

TEM CERTEZA ?

COMO VOCÊ PODE TER TANTA CERTEZA ?

@ KWD @

NÃO

VOCÊ PARECE ESTAR MUITO PESSIMISTA.

NUNCA DIGA NÃO…

NUNCA DIGA NUNCA

NUNCA SEJA RUDE

NUNCA SEJA ARROGANTE !!!!

NUNCA DIGA QUE NÃO POSSO FAZER ISSO

NUNCA SEJA OTIMISTA

@ KWD @

COMPUTADOR

SEI TRABALHAR NO COMPUTADOR.

VOCÊ ESTÁ USANDO UM COMPUTADOR. DIREITO ?

Por exemplo, 'Hello', do dicionário acima, MAX dará uma das seguintes respostas:

OI, COMO ESTÁ VOCÊ, QUERIDO!

ESTOU BEM

COMO FOI SEU TRABALHO?

QUANTOS ANOS VOCÊ TEM?

Etapa 6: aulas

Assim que isso estiver claro, vamos agora definir as estruturas de dados que usaremos.

Criamos duas classes:

progstr - É usado para armazenar as informações relacionadas à entrada do usuário.

resp - Isso é usado para armazenar as informações sobre as várias respostas

class progstr {

público:

char userip [MAX_USER_INPUT];

palavra-chave char [30];

int keyfound;

int keyno;

int nullip;

// construtor

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

}

} ip;

classe resp

{

int tot_resp;

int last_resp;

char responde [MAX_RESP_NO] [MAX_RESP_LEN];

palavra char [MAX_KWD_LEN];

público:

// construtor

resp ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

return last_resp;

}

void addword (char str [MAX_KWD_LEN])

{

strcpy (palavra, str);

}

char * getword ()

{

palavra de retorno;

}

void addresp (char str [MAX_RESP_LEN])

{

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

}

// definido mais tarde

void display_resp (int num);

void quit_display_resp (int num);

};

Olhando para a primeira classe, O array de caracteres userip é usado para armazenar a frase fornecida pelo usuário.

Outra palavra-chave da matriz é usada para armazenar a palavra-chave, se houver, encontrada nessa entrada. Se uma palavra-chave for encontrada, tornamos int keyfound em 1 else, ela permanece 0, pois é inicializada em 0 no Construtor.

keyno armazena o número de chave correspondente da palavra-chave correspondente.

nullip indica se o usuário forneceu alguma entrada nula, ou seja, ele está apenas pressionando enter sem fazer mais nada.

Agora vamos para a segunda classe, resp.

O primeiro membro de dados, tot_resp indica o número de respostas totais para uma determinada palavra-chave.

As respostas são realmente armazenadas em replys [MAX_RESP_NO] [MAX_RESP_LEN] e a palavra-chave correspondente é armazenada na palavra do array.

Construtor: é usado para inicializar o número total de respostas para 0. Por que last_resp é inicializado para -1 ficará claro quando você olhar para a função add_resp.

int getcount ():

Esta função é usada para obter uma contagem de quantas respostas existem para uma determinada palavra-chave.

void addword (char str [MAX_KWD_LEN]):

Isso é usado para adicionar uma palavra-chave.

char * getword ():

Usado para retornar a palavra-chave para um determinado objeto da classe resp.

void addresp (…):

Isso é usado para adicionar uma resposta correspondente a uma determinada palavra-chave.

void display_resp (int):

Isso é usado para exibir a resposta ao usuário correspondente a um determinado número de índice para as respostas. (na verdade, faz mais do que isso!).

void quit_display_resp (int):

A diferença entre esta função e a função acima é que ela é usada no final quando o usuário está saindo. Portanto, ele não retorna o prompt ao usuário.

Etapa 7: Funções

void initialize_global ()

{

strcpy (palavra em [0], "SÃO");

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

strcpy (palavra em [1], "AM");

strcpy (wordout [1], "SÃO");

strcpy (wordin [2], "WERE");

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

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

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

strcpy (wordin [4], "VOCÊ");

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

strcpy (palavra em [5], "I");

strcpy (wordout [5], "VOCÊ");

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

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

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

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

strcpy (palavra em [8], "ESTOU");

strcpy (wordout [8], "VOCÊ");

strcpy (wordin [9], "VOCÊ");

strcpy (wordout [9], "I'VE");

strcpy (wordin [10], "Eu sou");

strcpy (wordout [10], "VOCÊ É");

strcpy (wordin [11], "VOCÊ É");

strcpy (wordout [11], "Eu sou");

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

strcpy (wordout [12], "VOCÊ");

strcpy (wordin [13], "VOCÊ");

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

}

Vamos agora escrever uma função para exibir as respostas ao usuário. A primeira instrução if no loop for é usada para cometer um erro de digitação deliberado para fazer com que pareça mais humano como;-). Um caractere é escolhido aleatoriamente para erro de digitação. Casos especiais como New Line e Backspace são considerados separadamente. (Pense por quê?). Agora, apresento algo novo. Um caractere especial - *. Char * representa todo o texto encontrado APÓS a palavra-chave identificada e antes de um dos seguintes sinais de pontuação.

Por exemplo, considere a entrada do usuário

AMIT> POSSO IR PARA INDORE AMANHÃ?

MAX> E SE VOCÊ NÃO FOR INDORE AMANHÃ?

A parte sublinhada não é armazenada no dicionário, mas sim obtida da entrada do usuário. No arquivo MAX. Dat, armazenamos essas informações como

POSSO

E SE VOCÊ NÃO *

Star (*) pede ao programa para simplesmente copiar o que quer que seja digitado após a palavra-chave (aqui CAN I) na entrada do usuário, como está. Espero que agora a função de * como uma palavra-chave especial esteja clara. Portanto, consideremos um caso mais complicado.

AMIT> POSSO IR AO SHOPPING?

MAX> E SE VOCÊ NÃO FOR COMPRAS?

Devemos realizar alguma transformação também. Quando pensamos em transformação, a frase é dividida nas seguintes 3 seções:

  • Texto antes da palavra de transposição. (aqui, IR PARA COMPRAR COM)
  • A palavra-chave transposta. (aqui, SEU, no lugar de MEU)
  • Texto após palavra-chave de transposição. (aqui eu ?)

Etapa 8: Os casos podem ser resolvidos por ………

Etapa 9: Pesquisando uma palavra-chave na entrada do usuário

MAX_KEY indica o número de palavras-chave no arquivo DAT.

Aqui, simplesmente pesquisamos se a palavra-chave está presente na entrada do usuário.

Etapa 10: Conclusão

Isso é tudo ………

Você conseguiu !!!!!!!

Acho que todos entenderam as coisas claramente …

Recomendado: