-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathreferencial_teorico.tex
227 lines (151 loc) · 24.3 KB
/
referencial_teorico.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
\chapter{Reconhecimento Automático de Voz}
Sistemas de reconhecimento automático de voz, tem como objetivo, transformar um sinal analógico(fala) obtido através de um transdutor \footnote{ Dispositivo que transforma um tipo de energia em outro, utilizando para isso um elemento sensor}, mapeando-o a fim de produzir como saída a palavra, uma sequencia de fonemas ou uma sentenças correspondentes ao sinal de entrada. Com o resultado da tradução, pode-se tomar decisões, traduzir para outra língua, etc. Geralmente sistemas de reconhecimento de fala são divididos em 4 fases, que serão detalhadas mais a frente neste trabalho, fases essas de: aquisição de voz, pré-processamento, extração de informações e geração de padrões.
%Descobrir o q eh analógico digital
A primeira etapa é a \textit{aquisição de voz}, processo pelo qual ondas sonoras são convertidas em sinais elétricos, e depois é feita uma conversão analógico-digital do mesmo. Algumas características do ambiente de gravação podem atrapalhar no processo de reconhecimento, como ruídos, distância do microfone, etc. Assim é preciso passar por uma fase que é feita uma filtragem afim de tornar o sinal o mais próximo possível da fala pura, o nome desta etapa é \textit{pré-processamento}. Logo depois, é feita a \textit{extração de informações} do sinal, que consiste em representar segmentos, fonemas ou qualquer outra unidade de fala com o menor número possível de parâmetros, de forma que estes contenham informações suficientes para caracterizar o sinal de fala, já que um sinal digital possui uma grande quatidade de parâmetros, então a exigência por tempo e processamento seriam muito altas. Outra etapa, e uma das mais importantes é a \textit{geração de padrões}, também chamada de padrões de referência, que é realizada durante o treinamento do sistema, nesta fase é gravado o maior número possível de padrões, para cada palavra cadastrada no dicionário, para garantir o melhor funcionamento e tempo de resposta do reconhecedor.
\cite{RavIsolAnderson}, \cite{RavComputLouzada}.
\section{Fala}
Segundo \citeonline{RavCorporaCarlos} a fala é a forma de comunicação mais utilizada pelos seres humanos. Através da fala, o cérebro humano consegue interpretar informações extremamente complexas, tais como identificar a pessoa que está falando, sua posição no espaço físico, seu estado emocional e outros dados como a ironia, seriedade ou tristeza. Os computadores, apesar de fazerem cálculos mais rápidos que o homem, não conseguem reconhecer através da fala informações como os seres humanos.
\subsubsection{Vantagens da comunicação pela fala em sistemas homém-máquina}
Segundo \citeonline{RavDigitalSadaoki} podemos citar:
\begin{itemize}
\item Naturalidade: Não precisa de treinamento especial e nem de habilidades especiais;
\item Rapidez: A informação é transmitida mais rapidamente que pelas outras formas de comunicação.
\item Flexibilidade: Deixa as mãos, olhos livres;
\item Eficiência: Tem uma elevada taxa de informação;
\end{itemize}
\subsubsection{Desvantagens no uso da fala em sistemas homem-máquina}
Mesmo possuindo vantagens significativas, a comunicação por fala também possui desvantagens, como \citeonline{RavDigitalSadaoki} descreveu:
\begin{itemize}
\item Ruidos: O sistema fica suscetível a interferência do ambiente, necessitando de um removedor de ruídos para ambientes com alto índice de ruídos.
\item Diversidade da língua: Características que variam de pessoa para pessoa, como sotaque, velocidade da fala, condições físicas e emocionais do locutor.
\end{itemize}
%Tentar procurar mais desvantanges e argumentos para diversidade.
\subsection{Aquisição do sinal de fala}\label{subsec:fala}
Aquisição do sinal de fala é a primeira etapa de um sistema \textit{RAV}, ele é responsável por capturar e converter um sinal analógico em um sinal elétrico, esse processo pode ser feito através de um microfone ou telefone. Todas as etapas de aquisição de voz, podem ser vistas na figura 1 \cite{RavIsolAnderson}:
\begin{figure}
\includegraphics[width=1\textwidth]{graficos/aquisicao_fala.eps}
\caption{Processo de aquisição do sinal da fala}
\end{figure}
\section{O Sistema de Reconhecimento de Fala}
Sistemas de reconhecimento automático de voz vem sendo estudados desde os anos 50 nos laboratórios Bell, quando foi criado o primeiro reconhecedor de dígitos isolados com suporte a um locutor \cite{MetodosProAnderson}. As redes neurais também surgiram nos anos 50, mas não houve prosseguimento nos estudos, devido a problemas práticos. Muitos reconhecedores de voz, foram criados nas décadas de 50 e 60 \cite{RavSpeechSadaoki}. \citeonline{FundamentRabiner} mostra que no início dos anos 70, surgiram os algoritmos para sistemas de fala contínua, graças as técnicas de \textit{Linear Predictive Coding} (LPC) e \textit{Dynamic Time Warping} (DTW). E os anos 80 foram marcados pela disseminação dos metodos estáticos, como \textit Modelos Ocultos de Markov (HMM). Esse período foi de grande evolução para os sistemas de reconhecimento de voz, as redes neurais passaram a ser usadas no desenvolvimento dos sistemas, sendo possível implementar sistemas mais robustos, com vocabulários grandes e com taxas de acerto de mais de 90{\%} \cite{AvaliaTecJose}.
\citeonline{FundamentRabiner} classifica os reconhecedores de voz em três grandes classes: \textit{reconhecimento por comparação de padrões}, \textit{reconhecimento baseado na análise acústico-fonética} e \textit{reconhecimento empregando inteligência artificial}. No reconhecimento por comparação de padrões, existem duas formas distintas: treinamento e reconhecimento. Na fase de treinamento, são apresentados padrões ao sistema para criação de representantes, para cada um dos padrões. A fase de reconhecimento compara um padrão ainda desconhecido, com os padrões existentes no sistema, o que mais se aproximar do padrão existente, é escolhido como o padrão reconhecido. A fase de treinamento é fundamental para o sucesso do sistema, portanto uma quantidade considerável de material será necessário para a fase de treinamento.
Sistemas com Modelos Ocultos de Markov (HMM) utilizam essa classe de reconhecimento \cite{AvaliaTecJose}. Nos sistemas com reconhecimento baseado na análise acústico-fonema, o sinal de fala é decodificado baseado em suas características acústicas e nas relações entre essas características \cite{DigSpeechNejat}. É identificada as unidades fonéticas da fala a ser reconhecida, e concatenando essas unidades é reconhecida a palavra. Nessa análise é necessário considerar as propriedades invariantes da fala. Segundo \citeonline{AvaliaTecJose} um analisador acústico-fonética apresenta as sequintes fases: análise espectral, detecção das características que descrevem as unidades fonéticas, a fase mais importante de todo o processo que é: segmentação do sinal de fala e identificação das unidades fonéticas e escolha da palavra que melhor corresponde a sequência de unidades.
Reconhecimento empregando inteligência artificial explora os conceitos tanto do reconhecimento por padrões quanto o baseado em análise acústico-fonema. Utilizando redes neurais, cria-se uma matriz de ponderações que representa os nós das redes, e suas saídas, estão relacionadas as unidades a serem reconhecidas \cite{AvaliaTecJose}.
Como dito anteriormente o processo para o reconhecimento de fala pode ser dividido em quatro fases: aquisição do sinal de voz, pré-processamento, extração de informações e geração dos padrões de voz, que podem ser vistas na figura \ref{figFala}, que além de mostrar essas etapas, também é ilustrado a fase de reconhecimento \cite{RavIsolAnderson}.
\begin{figure}[H]
\centering
\input{./graficos/sistema_rav}
\caption{Diagrama de blocos de um sistema de reconhecimento de voz}
\label{figFala}
\end{figure}
%por padrões te simplicidade de uso, maior entendimento, boas justificativas matemáticas e robustez. AvaliaTecJose e FundamentRabiner
\subsection{Características de Sistemas RAV}\label{sec:red_neu}
Existem várias maneiras de categorizar um sistema de reconhecimento de voz, os mais importantes são: o estilo de pronuncia que é aceito, o tamanho do vocabulário, a dependência ou independencia do locutor, perplexidade e relação sinal-ruído \cite{RavIsolMartins}. As categorias que serão detalhadas a seguir definem a precisão do sistema de reconhecimento fala:
\begin{enumerate}[A)]
\item Dependência do locutor:
Podemos classificar sistemas de reconhecimento como dependentes e independentes do locutor. Um sistema dependente de locutor reconhece a fala das pessoas cujas vozes foram utilizadas para treinar o sistema, apresentando uma pequena taxa de erros para o locutor para qual foi treinado o sistema, implementação mais simples que sistemas independentes do locutor, que reconhecem a fala de qualquer pessoa com uma taxa de acerto aceitável. Neste caso é necessário realizar o treino do sistema com uma base que inclua diferentes pessoas com diferentes idades, sexo, sotaques, etc. O que dificulta a construção desses sistemas.
\item Modo de pronúncia:
%Pesquisar conectas e contínua para o caso de serem diferentes
Sistemas RAV podem ser classificados quanto ao modo de pronúncia de duas formas, sistemas de palavras isoladas e os de fala conectadas(contínua). Reconhecedor de palavras isoladas são sistemas que reconhecem palavras faladas isoladamente, isto é, entre cada palavra deve existir uma pausa mínima, para que seja detectado o início e o fim da mesma. Isso proporciona um resultado muito superior aos de fala contínua, estes sistemas são os mais simples de serem implementados. Um exemplo clássico de reconhecedores de palavras isoladas são os reconhecedores de dígitos, que segundo \citeonline{RavPtBrCarlos} alcançam taxa de menos de 2{\%} de erro para dígitos de 0 à 10.
Já o reconhecedor de palavras conectadas são sistemas mais complexos que os de palavras isoladas e utilizam palavras como unidade fonética padrão. São capazes de reconhecer sentenças completas, pronunciadas sem pausa entre as palavras, e por isso não se tem informação de onde começam e terminam determinadas palavras, muitas palavras são mascaradas, encurtadas e as vezes não pronunciadas. Esses sistemas precisam lidar com todas as características e vícios da linguagem natural, como o sotaque, a duração das palavras, a pronúncia descuidada, etc. Tornando ainda mais difíceis as tarefas do reconhecedor em casos como “ele vai morrer em dois dias” que
muitas vezes é dito como “ele vai morrerem dois dias”.
Neste trabalho é considerado que o reconhecedor de fala conectada é similar a um reconhecedor de fala contínua, diferente do que propõe \citeonline{AvaliaTecJose}, onde ele define fala conectada como um padrão em que as palavras ditas fazem parte de um vocabulário restrito e faladas de forma contínua, além do reconhecimento ser feito usando padrões de referência para cada palavra. Já no reconhecedor de fala contínua os padrões a serem reconhecidos são sentenças e frases, envolvendo o reconhecimento de unidades básicas como fones, difones e outros, implicando em uma segmentação do sinal de fala.
\item Tamanho do vocabulário:
Um fator muito importante na precisão de um RAV, é o tamanho do vocabulário, quanto maior seu tamanho, maior a quantidade de palavras ambíguas, com realizações sonoras semelhantes, ocasionando maior chance de erros por parte do decodificador responsável pelo reconhecimento. Segundo \cite{RavIsolAnderson} vocabulários podem ser definidos como:
\begin{itemize}
\item Vocabulário pequeno: reconhecem até 20 palavras.
\item Vocabulário médio: reconhecem entre 20 e 100 palavras.
\item Vocabulário grande: reconhecem entre 100 e 1000 palavras.
\item Vocabulário muito grande: reconhecem mais de 1000 palavras.
\end{itemize}
Sistemas RAV com suporte a grandes vocabulários são chamados de Large Vocabulary Continuos Speech Recognition (LVCSR). Existem muitas dificuldades encontradas na criação de sistemas LVCSR, como: a disponibilidade de um corpus de voz digitalizada e transcrita grande o suficiente para treinamento do sistema, recursos como bases de textos de
tamanho elevado e um dicionario fonético de amplo vocabulário.
\item Perplexidade:
É muito importante poder quantificar a dificuldade que as comparações dos modelos de linguagem impõe aos sistemas \textit{RAV}, de acordo com \cite{RavHmmCarlos} a melhor maneira de avaliar um modelo de linguagem é utiliza-lo em um sistema de reconhecimento e determinar qual obtém a menor taxa de erro.
Uma medida popular que mede a dificuldade da tarefa, combinando o tamanho do vocabulário e o modelo de linguagem, que pode ser basicamente definida como a média do número de palavras que pode seguir uma palavra depois que o modelo de linguagem for aplicado. Pode ser pequena sendo menor que 10 ou grande sendo maior que 100 \cite{RavHmmCarlos}. A perplexidade de um modelo de linguagem depende do domínio de discurso. Na tabela \ref{tabPerp} tem-se um quadro comparativo para diversas aplicações \cite{SurveyCole} :
\begin{table}[H] % aqui começa o ambiente tabela
\centering
\caption{Perplexidades típicas para vários domínios.} % igual ao ambiente figura
\label{tabPerp}
\begin{tabular}{cc} % com este comando dizemos quantas colunas terá nossa tabela e a posição do texto dentro de cada coluna. Aqui temos três colunas (pois são três "c" dentre {}) e o texto estará centralizado em todas elas (indicado pelo "c", se quisermos alinhados à esquerda "l" ou direita "r"
\hline % este comando coloca uma linha na tabela
Domínio & Perplexidade \\ % esta é a primeira linha de nossa tabela. O símbolo "&" separa as colunas e "\\" indica que aquela linha acabou.
\hline
\hline
Radiologia & 20 \\
Medicina de emergência & 60 \\
Jornalismo & 105 \\
Fala geral & 247 \\
\hline
\end{tabular}
\label{tab}
\end{table}
\item Relação sinal - ruído:
Também chamado de \textit{(SNR)}, do inglês Signal Noise Ratio, são problemas que podem prejudicar o desempenho do sistema, como: ruídos, ambiente, distorção acústica, diferentes microfones e outros.
\end{enumerate}
\section{Reconhecimento da fala baseado em padrões}\label{sec:red_neu}
De acordo com \citeonline{AvaliaTecJose}, o reconhecimento baseado em padrões, é a técnica que oferece melhor resultado nos sistemas de reconhecimento de fala, então a implementação do sistema será usando essa técnica.
Um sistema de reconhecimento de voz usando reconhecimento de padrões foi representando por \citeonline{FundamentRabiner} e pode ser visto na figura \ref{figRecPad}:
\begin{figure}[H]
\centering
\input{./graficos/rec_padroes}
\caption{Sistema básico de reconhecimento de fala baseado na comparação de padrões}
\label{figRecPad}
\end{figure}
\subsection{Processamento do Sinal de Fala}
Nessa fase, o sinal analógico é digitalizado para ser comparado com os diferentes tipos de padrões, para essa comparação o sinal digital é convertido em um conjunto de parâmetros espectrais e temporáis. As comparações entre formas de ondas da fala são muito complicadas, e isso justifica o uso de parâmetros, como exemplo, podemos citar uma distorção de fase que é imperciptível ao ouvido humano, mas altera a forma da onda, dificultando as comparações de padrões \cite{AvaliaTecJose}.
Um grande número de parâmetros tem sido propostos, segundo \citeonline{AvaliaTecJose} os parâmetros mais usados são os: derivados dos coeficientes Linear Predictive Coding \textit{(LPC)} e os \textit{derivados diretamente do espectro do sinal}
Como já citado, os reconhecedores de palavras isoladas, necessitam de capturar os pontos limitantes de cada palavra. Existem vários algoritmos de detecção desse início e fim das palavras, usando parâmetros como: energia e taxa de cruzamento de zero para separar o sinal de fala do ruído.
\subsection{Padrões de Referência}
Padrão de referência é o processo conhecido como treinamento, pois é nessa fase, que são criados os exemplares das unidades a serem reconhecidas. Como a maioria dos sistemas de reconhecimento de voz são reconhecedores independentes de locutor, são necessários a apresentação de vários exemplos de cada unidade, com a maior variedade de diferentes locutores possível, para criação de um sistema robusto.
%estudar robustez e parametros espectrais e temporais.
\citeonline{DigSpeechNejat} sugere dois tipos de padrão: Um tipo chamado modelo estático que faz um modelamento estático das características exemplares do padrão, \textit{Modelos Ocultos de Markov} (HMM) são exemplos desse método. Outro tipo é conhecido como padrão de referência não paramêtrico, podendo ser um exemplo do padrão a ser reconhecido ou um padrão médio do padrão a ser reconhecido.
%Q eh padrão médio
Nos \textit{Nos Modelos Ocultos de Markov} (HMM) cada padrão é representado por uma rede com N estados, que são caracterizados por uma função de probabilidade de transição entre estados e um conjunto de funções de probabilidade de símbolos de saída \cite{AvaliaTecJose}.
\subsection{Comparação de Padrões}
A comparação de padrões, é a fase em que os dados são cruzados, o conjunto de parâmetros que representa o padrão desconhecido é comparado com os diversos padrões de referência, esses parâmetros são da mesma natureza que os padrões já referenciados.
Nos padrões de referência gerados por \textit{Modelos de Markov Ocultos}(HMM), a comparação resulta na probabilidade de que cada modelo de referência tenha gerado o conjunto de paramêtros de entrada \cite{AvaliaTecJose}.
\subsection{Pós-Processador}
A última fase seria a escolha do melhor padrão referencial, resultado da comparação de padrões, para o padrão desconhecido. \citeonline{AvaliaTecJose} mostra que como auxílio na escolha do melhor padrão, pode-se usar restrições sintáticas e semânticas, eliminando os candidatos não razoáveis.
\section{Avaliação de Desempenho de um Reconhecedor}
Vários fatores interferem no desempenho de um reconhecedor de voz, segundo \citeonline{AvaliaTecJose} um reconhecedor de palavras isoladas pode ser avaliado com essas medidas:
\begin{itemize}
\item Porcentagem de acerto: Porcentagem de palavras que foram reconhecidas corretamente;
\item Porcentagem de rejeição: Porcentagem de palavras que pertencem ao vocabulário e foram rejeitadas erradamente;
\item Porcentagem de erro: Porcentagem de palavras que foram reconhecidas erradamente.
\end{itemize}
Já no caso de reconhecedores de fala contínua, as medidas seriam \cite{AvaliaTecJose}:
\begin{itemize}
\item Porcentagem de inserção: Porcentagem de palavras extras inseridas na sentença reconhecida;
\item Porcentagem de omissão: Porcentagem de palavras corretas omitidas na sentença reconhecida;
\item Porcentagem de substituição: Porcentagem de corretas substituidas por palavras incorretas na sentença reconhecida.
\end{itemize}
\section{Modelos Ocultos de Markov}
Segundo \citeonline{AplicHmmWaghabi} a idéia principal dos \textit{Modelos Ocultos de Markov} (MOM) é representar uma variável aleatória como uma \textit{Cadeia de Markov}, com a idéia que essa variável não pode ser medida diretamente, mas sim com observações possíveis a partir de cada estado da variável. Em \citeonline{TutorialHmmRabiner} uma cadeia oculta de Markov é definida como uma máquina de estados finita que modifica seu estado a cada unidade de tempo. Podendo ser mais especificado como um modelo matemático formado por uma cadeia de estados conectados entre si, onde cada transição entre os estados possui uma probabilidade de ocorrência, além de cada estado está vinculado a um processo estocástico, que pode ser discreto ou contínuo, conhecido como processo de observação.
\citeonline{SpeechLangMartin} em seu trabalho apresenta uma cadeia com 3 estados, mostradas na figura \ref{FigHmm}, que detalha a probabilidade de ocorrência de um estado de tempo tendo-se por base o estado atual. Como exemplo é mostrado um dia de sol, as chances de um próximo dia ensolarado é de 50{\%}, do próximo dia ser chuvoso as chances são de 10{\%} e de um dia nublado 40{\%}. As probabilidades para os outros estados são diferentes mas seguem a mesma idéia.
\begin{figure}[H]
\includegraphics[width=0.9\textwidth]{graficos/markov.eps}
\caption{Cadeia de Markov para previsão do tempo}
\label{FigHmm}
\end{figure}
\citeonline{AplicHmmWaghabi} explica o exemplo:
“Imaginemos que um profissional que prevê o tempo não possa observar diretamente o clima. Trabalhando em um ambiente confinado, sua única dica de como está o tempo baseia-se nas vestimentas dos outros companheiros de trabalho. Como nem sempre seus companheiros conseguem prever corretamente o tempo, uma pessoa portando um guarda-chuva não significa certeza de chuva, mas tão somente uma probabilidade alta. Da mesma forma alguém de camiseta poderia ser surpreendido por um mau tempo, mas não tão frequentemente. Neste cenário ligeiramente estranho, a cadeia de estados do tempo está oculta ao meteorologista, e suas aferições têm que se basear em observações relacionadas com o tempo através de uma matriz de probabilidades”. Como na figura \ref{figHmm2}:
\begin{figure}[H]
\includegraphics[width=0.9\textwidth]{graficos/markov_2.eps}
\caption{MOM para previsão do tempo}
\label{figHmm2}
\end{figure}
Com este modelo acima o meteorologista pode deduzir, observando o comportamento de seus companheiros durante um determinado tempo, qual foi a seqüência de estados ocultos(tempo) mais provável de produzir a seqüência de observações, obtendo assim uma expectativa de em qual estado o sistema está no momento atual, consequentemente permitindo a previsão do dia seguinte.
Um Modelo Oculto de Markov (MOM), é composto por \cite{AplicHmmWaghabi}:
\begin{itemize}
\item Um conjunto $Q={\{q_{i}\}}$ de estados ocultos do modelo, ou apenas estados.
\item Uma matriz de probabilidades de transições $A=\{a_{ij}\}$ entre os estados ${q_{i}}$ e ${q_{j}}$, onde ${a_{ij}} = [0, 1]$ com $i, j \in [1, |Q|]$, e $\sum a_{ij} = 1$ para um mesmo estado ${q_{i}}$.
\item Um conjunto $O={o_{n}}$ de estados observáveis, ou observações.
\item Uma matriz de probabilidades $B={b_{in}}$ indicando a chance do estado ${q_{i}}$ produzir a observação $O={o_{n}}$, onde ${b_{in}} = [0, 1]$ com $i \in [1, |Q|]$, $n \in [1, |O|]$.
\item Uma distribuição $\Pi = {{\pi_{i}}}$ de probabilidades da modelo iniciar no estado ${q_{i}}$, onde ${\pi_{i}} = [0, 1]$ com $i \in [1, |Q|]$.
\end{itemize}
Segundo \citeonline{TutorialHmmRabiner} existem 3 problemas que são básicos no desenvolvimento de sistemas RAV modelados por HMMs, o problema da avaliação, problema da decodificação e o problema do treinamento. Dentre os algoritmos que podem resolver esses problemas encontrados: o algoritmo Forward ou o algoritmo Backward para o problema de seleção caso existam vários modelos, o algoritmo de Viterbi, que é próximo ao ótimo para o problema da decodificação ou reconhecimento e o algoritmo Baum-Welch para o problema de treinamento \cite{RavIsolAnderson}.
\section{Trabalhos Relacionados}
Como essas áreas são muito importantes para os seres humanos, muitos estudosforam feitos no sentido de utilizar a fala pra realizações de ações. Como exemplo temos:
\citeonline{RavCadeiraAedb} desenvolve uma aplicação de reconhecimento de voz para aplicações em cadeira de rodas, onde o cadeirante se movimenta através de comandos de voz, como facilitador da implementação, foi utilizado o software IBM Via Voice, que segundo \citeonline{ImplementServVirtuaisDamasceno} obteve um melhor desempenho e aplicabilidade quando comparado a outros softwares, considerando a língua falada, a robustez do reconhecimento e a interface de trabalho com outros programas devido à aplicação deste desenvolvimento ser no Brasil.
Já em \citeonline{AcionamentRoboLegoFabio}, para efetuar o reconhecimento de voz foi utilizado redes neurais artificiais, também chamadas de \textit{(RNA)}. Usando como base RNA foi criado uma rede para identificar comandos básicos de voz, e assim, efetuar o acionamento de um robô móvel. Outra característica importante no projeto é o identificador neural, que foi desenvolvido como dependente do locutor, onde um sistema é desenvolvido com base nas características vocais de um locutor. Para novos locutores seria necessário um novo treinamento da rede com as características vocais dos novos locutores.