Post on 18-Jan-2020
����������������������� ���������
������� ��� ���� ������ �� �
�������������������������� ����
�����������������������������������������
Formação: Mestrado em Automação Industrial
���������������������������
Adriano de Andrade Bresolin
Estudo do Reconhecimento de Voz para o
Acionamento de Equipamentos Elétricos via
Comandos em Português
Apresentada em 01 / 08 / 2003, perante a banca examinadora
����������� !"#���� $ %"& ��'(����������������� �������
�������� ��%�)'�*%"�$��"�+���&,��������
� � ��������%&"#+�+����+�-.#"������� �������
� � ��������-�)*+ �%"/ "������ �������
����������������������� ���������
������� ��� ���� ������ �� �
�������������������������� ����
�����������������������������������������
�������������������
������� !"������������#����������$��%�&�!�'���&(&���
��&���� !��"��!)�*���*����������+��� ����,� �-����
Estudo do Reconhecimento de Voz para o
Acionamento de Equipamentos Elétricos via
Comandos em Português
DISSERTAÇÃO APRESENTADA COMO REQUISITO À OBTENÇÃO DO TÍTULO DE MESTRE EM AUTOMAÇÃO INDUSTRIAL, DA UNIVERSIDADE DO ESTADO DE SANTA CATARINA, CENTRO DE CIÊNCIAS TECNOLÓGICAS – CCT, ORIENTADA PELA PROFESSORA DRA. REGINA MARIA DE FELICE SOUZA.
Joinville, 01 de Agosto de 2003
�����������������
� �°°°°������������������������������
Estudo do Reconhecimento de Voz para o
Acionamento de Equipamentos Elétricos via
Comandos em Português �
Dissertação aprovada como requisito parcial à obtenção do grau de Mestre em
Automação Industrial, do Curso de Pós-Graduação em Automação Industrial do
Centro de Ciências Tecnológicas da Universidade do Estado de Santa Catarina, pela
seguinte banca examinadora:
Orientadora: Profa. Dra. Regina M. De Felice Souza
Departamento de Engenharia Elétrica – CCT/UDESC
Prof. Dr. Alcindo do Prado Júnior Departamento de Engenharia Elétrica – CCT/UDESC
Prof. Dr. Carlos Aurélio Faria da Rocha Departamento de Engenharia Elétrica - UFSC
Joinville, 01 de Agosto de 2003
Agradecimentos,
Sozinho não se chega a lugar algum!
É com este pensamento que agradeço a todos aqueles que, de uma maneira ou de
outra, colaboraram para a conclusão deste trabalho.
Primeiramente agradeço a Deus pela vida.
Agradeço à minha família, em especial à minha esposa Elisabeti pela compreensão
nos momentos em que não estive presente. Aos meus pais, Armindo e Delci Bresolin, pelo
incentivo que sempre me deram a seguir em busca da educação. Aos familiares de minha
esposa: seus pais, Sr. Agenor e Sra. Ermelinda Larsen e sua irmã Magali Larsen, que
durante o período de estudos me receberam em sua casa com dedicação, atenção e
desprendimento.
Agradeço também ao colega de curso e amigo Eng° Fabrício Novelleto, que foi um
companheiro de trabalho na graduação e nesta pós-graduação
Por fim, agradeço a todos os professores que ministraram aulas no curso de
Mestrado e em especial à Dra. Regina Maria De Felice Souza que acreditou neste projeto
como orientadora.
SUMÁRIO
��������������� � �����
����������������� � ��
������� � ���
��������� � ����
���������������������������������������������������������������������������������������������������������������������������������������������������������� ��
� ���������������� ��!"�#"���!"$��!���$�"�#���"%� � &��
� '�����$���#��!�(��$���#�#��#"���!"$��!���$�"�#���"%� � &)�
�
���������������������������������������������������������������������������������������������������������������������� ��
' ���"#��"��*��!"�#�������������#����!"$��!���$�"�#���"%� � &+�
' '����(�"����,-"��!.���!"/"$0��!�� � &1�
' )����(�"����,-"�("����!"$��!���$�"�#��(�#�2��� � &3�
' 4����(�"����,-"�("���$����56$!��������!����7��8�� � �&�
�
����������������������������������������������������������������������������������������������������������
) ��(�"#�,-"9�(��!�(,-"�#������ � �'�
) '�"��(�����"��"!�������$"� � �4�
) )���(����$��,-"�#������$"��#"�:$�"��#"����("���#����;<6$!��� � �=�
) 4�����!���!���:���!���#"���"$��#������ � �>�
) + "$"�"5�����"$���� � '&�
) + ���?���������@?���(��������� �''�
) + '�!�����A���BC�������?���������@?���(������������������� � '4�
) + )���������� � '4� �
) + 4��������D������ � '+�
) + +����!�?���?����� � '=�
) =�"��"#��"�#"�"���#"�����$"� � '1�
) 1���$*������$��� � '3�
�
������������������������������������������������������������������������������������������������������������ ���
4 ����:��!��#"���"$�� � '>�
�� � 4 � �����!�������@�������A�����E������������ � )&�
4 '�"���������#���;����,-"�#��#�#"�� � )��
4 )�"����#F����#���;����,-"�#��#�#"�� � ))�
4 4�"����$�"���� � )4�
4 +�"�!"$#�!�"$���$�"�#����$��� � )=�
4 =�"�!"�(���#"�� � )=�
4 1�"��"�F���� � )1�
4 3�����;����,-"�#��#�#"���$�� 5�!"�� � )3�
4 3 ��������������� � )3�
4 3 '���;��?��G�BC�� � )>�
4 3 )�(�����C�����H����C�� � )>�
4 3 4�"��?�����B���?��� � 4��
4 3 +����?�A��I?����������������JK���L���M�N���������E��� �4��
4 >���:#"� � 4'�
�
�������������������������������� ���!�����������������������������������������������������������������������������������������
+ ������0�����#��"������ � 44�
+ '������$�"���#��!"$�:$���#��"������� � 41�
+ )������$�"���#��#��!�����#��"������7#�8� � 41�
+ 4������$�"���#���*(�#��#��"������7�8� �41�
+ 4 �����"(���,-"�J�������OM� �43�
�
"��#�������������������������������������������������������������������������������������������������������������������������������������������������� ���
= ���"#��"��#���$*�������(�!����� � +)�
= '�"��"#��"�#"���$!"�#������"�� � ++�
= )���("��#����$!"��#������"�����#"��$"���!"$��!���$�"�#���"%�� � +=�
= 4���(����$��,-"�#�������$!"�#������"�� � +3�
= +�!"$��#���,2�����"����"���"�#"����$!"��#������"�� ��+>�
�
$�������%&�������'���������������������������������������������������������������������������������������������������������������������������������������� "��
1 �������$�"���#��JF������M�� � =��
1 '�����$*�����#�����������"��,-"��7���8�(�����.���(�"��$:����� � =+�
�
(�����������������������������������#�"� �����������������������������������������������������������������������������������"$�
3 ����"������$���#��(�"5����,-"�#"�������� � =3�
3 '�����������$����#��(�"5����,-"�#"�������� �1&�
�
������������������������������������%������������������������������������������������������������������������������ $��
> �����;����,-"�#�������$���#���"�� � 1=�
> � ��"������A�?�����P��������P����BC��������� � 1=�
> � '���(�����������������G���� �� 13�
> � )����P����BC���������?�������� �� 1>�
> '����������5���#"���$���$"������� � 3'�
> ' ��(��N������������A�����������G���� �� 3'�
> )���"�!*�!��"�#����$"������� �� 3)�
> 4���5����,-"�#��������"�����#���"�� �� 34�
> +�����!"$��!���$�"�#���"%������0��#��(�#�2���#����!"$��!���$�" �� 3+�
> + �������?��A���BC�������?���7����?K�����?��8� �� 3=�
> + '�����������HN�����?��������!������BC�� �� 3=�
> + )���D������G�BC������������������������?K�����?��������G� �� 31�
> =��������$�"���#��F������� �� 33�
> 1���!�"$���$�"�#���;��(���$�"����0���!"������!"�(���#"��� �� 33�
> 1 ��!�������������Q?�����������?���?���� �� 3>�
�
� ���)���������*���������������+������������+�������������������������������������������������
� � � �& ����(�����$�"��#����!"$��!���$�"�#��(�������� �� >��
�& � ����������������?K�����?��������� �� >��
�& � '���������������?K�����?��������9�#�?���������N���������F�D������ �� >+�
�& � )�"���N��������������(���D����� �� >=�
�& '���(�����$�"��#���!�"$���$�"�& � >3�
�& ' ���"����Q�RK�N���� � >>�
�& ' '�"��!���?����?���������N���������Q�RK�N���� ����&&�
�& ' )��"��������������"������� ����&��
�
������������������������������������������������������������������������������������������������������������������������������������������������������������ ��
�
���������,������#�#���-��������������������������������������������������������������������������������������������������������������������� ��
�
�
�
VIII
���������������
�������������� ��������� �������� ���� � ���� ��� ����� ���������������������������������������������������������������������� ���
����� �������� ��������������� ���� � ���� ��� ����� ������������������������������������������������������������������ ���
�� ����������� ��������������� ���� �� ���� ��� ����� �!��" ����������������������������������������������������������������� �#�
��$����������� ����������� ������������� ���� � �� ���� ����������������� ������������������������������������� ���
�
����������� �%� �&��������!�� �������!���'(�� �! � !'(���������������������������������������������������������������������
����)�� �������!���'(�� �! � !'(���������� �� ������� �!���������������������������������������������������������������������� � �
� ��*�����+�����!� ���������������������������������������������������������������������������������������������������������������������������������$�
�$��������� �%� �&���������!� ������������������������������������������������������������������������������������������������������� ���
����,�%� ������!� ������� ��������������-�������!���'(������������������������������������������������������������������������ �.�
�.��/������ ��������� 0! ��(���12�3��4�� 56�������7�������� �!������������������������������������������������������������������ ���
����,�! �������� ���!����� ���������������������������������������������������������������������������������������������������������������������� �#�
�8��9�� ������:������;��������������������������������������������������������������������������������������������������������������������������������� ���
�
$����:�9�� ���������� ���� �<%����'(��� ������������������������������������������������������������������������������������������������������ ��
$����)������ �1���=� 5�� �������� ���� �<%����'(��� ������������������������������������������������������������������������������� $�
$� ��>������ �������� ��;�����������!�����%����������� � ������������������������������������������������������������������������� $��
�
�����<�:! �'(��1?��� ��@5����������������������������������������������������������������������������������������������������������������������������������������
�����A������:! �'(��1?��� ��@5�!������!��������//4�� �8�!�������������������������������������������������������������������� ���
�����B��!��'(�������� ��� �9����!����'" �� %� �����! ����&�������� ��� �! ���//4���������������������������������� ���
�
.�����C�D�<!�0���'(��!��* ���� ��� ����� �)��" ��C�D�<!�0���'(�������������������������������������������������� �$�
.�����9�� ���� ���&��� �� ����?������ �/�������������������������������������������������������������������������������������������������������� �$�
.� ���9�� ���� ���&��� �E)B��������������������������������������������������������������������������������������������������������������������������������� ���
.�$���9�� ����������������� ����?������ �/��������������������������������������������������������������������������������������������������� �.�
.����C�D��� ���C�D� ����* �!������� ����������� ��������� �F�G��������������� �����
��������� ��������0��� �� %HI������ ��/�JKCLD�����C/�JKDCFM�L�D��������������������������������������������������������������������������� ���
.�.��,�! ������'(��!������?������ �/������� ���� �$��������� �������������������������������������������������������������������8�
�
�����:����> ������� �N�� � ����!��������������������������������������������������������������������������������������������������������������������� .��
������ ���!���'(��� ����������%���%� � ���������� ������������������������������������������������������������������������������������ .
�� ��� ���!���'(��� ����������%���%� � ���������� ���� �� �� ������ �!���'" ������������������������������������������� . �
IX
��$���K7� ����� ������ ���!���'(��� ����������! ����N�� � ����������������������������������������������������������������������������.$�
������,0 �!������'(������ ���!���'(��� ����������! ����4����������N�� � ��K7� �������������������������������������� .��
��.���� ���!���'(��!���9����!�����7� �������N�� � ���������������������������������������������������������������������������������������� .��
�
8����O�� ���� �B����������9<4E<?����������������������������������������������������������������������������������������������������������������� .8�
8����P ��� �9 �-������9<4E<?���������������������������������������������������������������������������������������������������������������������� .#�
8� ��4 ������!� ���������� �� �� �� � ������� �������9<4E<?�������������������������������������������������������������������������
8�$��O�� ���1E������)��5����9<4E<?���������������������������������������������������������������������������������������������������������������� ���
�
#��� 4 ������)�������������.���������������������������������������������������������������������������������������������������������������������������� �$�
#����O�� ���� �B�������������� ��� ������������������������������������������������������������������������������������������������������������� ���
#� ��O�� ���� �Q �����'(��������������������������� ���� ������” ������������������������������������������������������������������ �.�
#�$��R&���������������� ����6�//4� �� ������ �,�! ����� ���?����!������� ���”����������������������������������������� 8��
#����R&��������� �!��������������)�����?��0�6���!����������������� ��� ���S�������������������������������������������� 8��
#�.���)�� ����4 ���������� ���� �������� �!���&� ��! ������'(��� ���������� �������������������������������������8��
#�����?��(��%� � 0 �������* ���� ��� ����� �Q�� ������������������������������������������������������������������������������������������� 8.�
#�8���)�� ����T�� ���� �B�������������� ��� �������%� � 0�� ���� ������������* ���� ��� ����� �Q������� 8��
#�#���)��������!����!��� ���� ����B��!������)B�������������������������������������������������������������������������������������������� 8#�
#������B�������� �������� ���� ������������������������������������������������������������������������������������������������������������������������#��
�
�������R&��������� �� �� �* ���� ��� ������� �� ������� ��'(�����//4������������������������������������������������������#��
�������B��!��'(��&���������!�������1�I�5� �1� ��5�C�����6�//4� �� ������ �,�! ����D�������������������������������� #$�
��� ���B��!��'(��&���������!�������1�I�5� �1� ��5�CN�� � ��D�����������������������������������������������������������������������#$�
���$���R&��������� �� �� �* ���� ��� ������������� ��'" ������//46�� ������ �,�! ����� �N�� � ���������#��
�������R&��������� �� �� �* ���� ��� �������� ��� ��� �����������������������������������������������������������������������������#��
���.���>�������������� �,�! ����������!������1,�%� ��5�������������������������������������������������������������������������� #��
�������>�������������� �,�! ����������!������1�� ���5������������������������������������������������������������������������������� #8�
���8���*��U�V� ! ���������������������������������������������������������������������������������������������������������������������������������������������� ##�
�
�
X
�����������������
4�� ��� �����E������ ��7���������������������7����2�� ���<� ��������������������������������������������������������������������� ���
4�� ��� �����E������ ��7���������������������� ��������E7����)���� ������?������������������������������������������ ���
4�� ��� � ���E������ ��7����������������������������� �����E7����)���� ������?������������������������������������� � �
4�� ��� �$���E������ ��7������������������������������E7����)���� ������?��������������������������������������������� �$�
4�� ��� �����B���������'(���������������E7����)���� ������?������������������������������������������������������������������� ���
�
4�� ���$�����<��2�� ������ ������������������������� �� �������������������������������������������������������������������������������� ��
�
4�� ��������> %HI������ �* ��� ��'(������������ ��� �� � ���������������������������������������������������������������������� ���
�
XI
�������
O mundo globalizado vem derrubando barreiras através da informação. Iniciou-se
pelas barreiras comercial e econômica, e num futuro não muito distante poderão ser
derrubadas as barreiras dos idiomas, ou seja, pessoas falando em idiomas diferentes,
comunicando-se através de equipamentos digitais preparados para traduzir instantaneamente
as diferentes expressões lingüísticas pronunciadas pelos mesmos. Esse é o horizonte a ser
alcançado pelo reconhecimento de voz.
Nesse novo universo não haveria mais a barreira lingüística entre as pessoas,
facilitando a comunicação e os negócios, simplificando o comando de máquinas no ambiente
industrial e, acima de tudo melhorando a vida do ser humano como um todo. Além disso, esta
ferramenta facilitaria a vida de deficientes físicos, à medida que, com o comando de voz os
mesmos teriam acesso a uma infinidade de serviços e empregos, podendo assim ajudar a
derrubar a barreira do preconceito.
Este estudo procura pesquisar, descrever e aplicar os conceitos e a teoria envolvida no
processo do reconhecimento de voz, deste a aquisição até o reconhecimento do sinal da fala.
A meta é desenvolver um sistema que seja capaz de comandar um equipamento elétrico
qualquer através de comandos de voz.
O objetivo desta dissertação é dar um pequeno passo a mais na concretização de um
processo que fez parte dos filmes de ficção cientifica nos anos 70 e 80 e pode tornar-se
realidade no inicio do século XXI, “o reconhecimento de voz pelas máquinas”.
XII
���������
The global world is dropping barriers through the information, began for the
commercial and economical barrier, and in a future not very distant we can drop the barriers
of the languages, in other words, people speaking in different languages, communicating
through prepared digital equipments to translate the different pronounced linguistic
expressions instantly for the same ones. This is the horizon to be reached by the voice
recognition.
In this new universe there would not be more the linguistic barrier among all the
people, facilitating the communication and the businesses, simplifying the command of the
industrial machines and above all, improving the human being life as a completely. Besides,
this tool can facilitate the life of deficient physical. The voice command can have access the
infinity of services and employments could help like this to drop the barrier of the prejudice.
This study seeks to research, to describe and to apply the concepts and the theory
involved in the process of the voice recognition, of this the acquisition to the recognition of
the speech signal. The goal is to develop a system that is capable to command any electric
equipment through voice commands.
The objective of this dissertation is to give a litte step more the in the materialization
of a process that was part of the science fiction films in the years 70 and 80 and it can become
reality in the begin of the century XXI, "The Speech Recognition by Machines ”.
���������
O reconhecimento automático da voz por máquinas tem sido a meta de
pesquisadores por mais de quatro décadas e tem inspirado maravilhas da ficção científica
tais, como o computador HAL de Stanley Kubrick no famoso filme 2001-Uma Odisséia
no Espaço e o robô R2D2 de George Lucas no clássico filme Guerra nas Estrelas.
Entretanto, apesar do glamour das máquinas inteligentes que podem reconhecer as
palavras faladas e compreender seu significado, e apesar dos enormes esforços e gastos em
pesquisas tentando criar tal máquina, nós estamos longe de realizar a desejada meta de uma
máquina poder entender um discurso falado de uma pessoa qualquer dentro de um universo
de vários falantes e vários ambientes.
��� � ������������������������� ���������
Pesquisas sobre o reconhecimento automático da voz têm sido feitas por mais de
quatro décadas. A primeira tentativa de arquitetar sistemas de reconhecimento automático
de voz pela máquina remonta aos anos 50, quando vários pesquisadores tentaram explorar
as idéias fundamentais da acústica e da fonética.
Em 1952, nos laboratórios da Bell, Davis, Biddulph e Balashek construíram um
sistema para reconhecimento de um dígito isolado falado por uma pessoa [1].
Em um esforço independente nos RCA Laboratories, Olson e Belar, tentaram
reconhecer 10 sílabas diferentes faladas por uma pessoa [2].
No final da década de 50 Fry e Denis, pesquisadores da University College of
England, tentaram construir um reconhecedor de fonemas para reconhecer quatro vogais e
nove consoantes. Eles usaram um analisador de espectro e uma combinação de padrões
para fazer a decisão do reconhecimento. O novo aspecto neste reconhecimento era o uso de
informação estatística [3]. Outro esforço notável neste período foi o reconhecedor de
vogais Forgie & Forgie, construído no MIT Lincoln Laboratories em 1959. Novamente
um analisador de banco de filtros foi usado para prover a informação espectral [4].
Na década de 60, os laboratórios japoneses entraram na arena do reconhecimento
de voz. O primeiro sistema japonês foi descrito por Suzuki e Nakata do Laboratório de
pesquisas de Tóquio. Era um reconhecedor de vogais [5].
2
Outro esforço japonês na construção de um sistema de reconhecimento de voz foi o
trabalho de Sakai e Doshita, da Kyoto University, em 1962, os quais construíram um
reconhecedor de fonemas que usava a análise de passagem por zero para fazer o
reconhecimento de voz [6].
O terceiro esforço japonês foi o reconhecedor de dígitos de Nagata e seus colegas
de trabalho, nos Laboratórios da NEC em 1963 [7]. Este trabalho foi talvez a mais notável
tentativa no reconhecimento de voz da NEC, a qual iniciou um longo e altamente
produtivo programa de pesquisas.
Na década de 60, três projetos de pesquisa chaves foram iniciados, os quais tiveram
uma grande implicação nas pesquisas desenvolvidas no reconhecimento de voz nos 20
anos seguintes. O primeiro foi a pesquisa de Martin e seus colegas dos Laboratórios RCA
no final dos anos 60 [8]. Martin desenvolveu um conjunto de métodos elementares de
normalização no tempo, baseado na habilidade de detectar o início e o fim da fala. Quase
ao mesmo tempo, na União Soviética, Vintsyukn propôs o uso de métodos de
programação dinâmica por alinhamento no tempo [9]. Um êxito no final dos anos 60 foi a
pesquisa pioneira de Reddyn no campo do reconhecimento da fala contínua através de
fonemas dinâmicos [10]. As pesquisas de Reddyn produziram o longo sucesso do
programa de pesquisas do reconhecimento de voz da Carnegie Mellon University, a qual
permanece nos dias de hoje como líder mundial em sistemas de reconhecimento de voz.
Na década de 70, as pesquisas de reconhecimento de voz tiveram um significante
avanço. Primeiro a área de reconhecimento de palavras isoladas ou expressões discretas
tornou-se viável com tecnologia baseada nos fundamentos estudados por Velichko e
Zagoruyko na Rússia [11], Sakoe e Chiba no Japão [12], e Itakura nos Estados Unidos
[13]. Os russos estudaram o uso de padrões de reconhecimento. Os japoneses pesquisaram
como métodos de programação dinâmica podiam ser usadas com sucesso. A pesquisa de
Itakura apresentou idéias como o LPC (linear predictive coding).
Finalmente os laboratórios AT&T e Bell, iniciaram uma série de pesquisas visando
fazer um sistema de reconhecimento de voz que entenda uma pessoa falando.
Ao contrário dos anos 70, onde a meta era reconhecer uma palavra independente,
nos anos 80 a meta era reconhecer a fala fluente de frases. Inclui-se nestas pesquisas a de
Sakoe da NEC (Nippon Eletric Corporation) [14].
As pesquisas nos anos 80 foram caracterizadas pelas aproximações estatísticas,
especialmente o modelo de Hidden Markov [15].
3
Outra idéia introduzida nos anos 80 foi a aplicação de redes neurais em problemas
de reconhecimento de voz [16].
Nos anos 90 as pesquisas continuaram com a busca de um sistema de
reconhecimento de voz contínuo. Um exemplo destes sistemas é o DARPA (Defense
Advance Research Projetcs Agency), o qual visava reconhecer continuadamente e sem
erros palavras dentro de um arquivo de 1000 palavras.
Existem nos dias de hoje várias empresas que comercializam sistemas de
reconhecimento de voz. Apesar de nenhum possuir a capacidade de entender 100% das
palavras pronunciadas corretamente, dois sistemas destacam-se pelo alto padrão de
reconhecimento: O sistema Via Voice da IBM e o sistema Voice da Dragon System.
�
������������������������������������ ���������
Um dos mais difíceis aspectos do desenvolvimento das pesquisas no
reconhecimento da voz pela máquina é a sua interdisciplinaridade natural. As áreas de
conhecimento necessárias à implementação de sistemas de reconhecimentos de voz são:
A) Processamento de Sinais: é o processo de extração de informações relevantes
do sinal da fala de uma maneira eficiente e robusta, através da aquisição de dados.
Incluindo no processamento de sinais, está a análise espectral usada para
caracterizar as propriedades variantes no tempo do sinal da voz, bem como os
vários tipos de pré-processamento e pós-processamento do sinal.
B) Aspectos Físicos (acústica): é a ciência que relaciona os sinais físicos e os
mecanismos fisiológicos que produzem a fala (o mecanismo vocal do ser humano)
e os que percebem a voz (o mecanismo de audição do ser humano).
C) Padrões de Reconhecimento: é o conjunto de algoritmos usados para agrupar
dados e criar um ou mais padrões de um conjunto de dados. Estes padrões podem
ser posteriormente comparados com um sinal qualquer para efeito de
reconhecimento.
D) Análise de Padrões: é o conjunto de procedimentos para estimação de
parâmetros de modelos estatísticos.
E) Lingüística: São as relações entre os sons (fonologia), palavras de uma
linguagem (sintaxe), significado das palavras faladas (semântica) e o sentido
4
derivado do significado (pragmático). Incluídos nesta disciplina estão a
metodologia da gramática e a análise da linguagem.
F) Fisiologia: Entendimento dos mecanismos do sistema nervoso central do ser
humano incluindo a produção e percepção da fala. Muitas técnicas modernas
tentam implementar este tipo de conhecimento, como o sistema de redes neurais
artificiais.
G) Ciências da Computação: o estudo de eficientes algoritmos para implementar,
no software e no hardware, os vários métodos usados num sistema de
reconhecimento de voz prático.
O sucesso de sistemas de reconhecimento de voz requer o conhecimento e perícia
de um largo campo de disciplinas. No entanto, não é preciso ser um “expert” em todas
estas áreas, mais sim ter conhecimento de todas e as suas implicações.
O objetivo deste trabalho é desenvolver um sistema de reconhecimento de voz
totalmente em português, que seja capaz de acionar um equipamento elétrico, via
microcomputador, com confiabilidade e rapidez.
5
��������������� ��� ������������
Como descrito no capitulo 1, um sistema de reconhecimento de voz possui a
característica da interdisciplinaridade. Com o objetivo de simplificar o entendimento deste
sistema complexo, este capítulo apresenta, além do modelo básico de um sistema de
reconhecimento de voz, as suas três principais aproximações.
������������� ������������������ ��� ������������
A figura 2.1 apresenta um modelo geral para o reconhecimento de voz. Neste
modelo o usuário pronuncia uma palavra (sinal de voz) que passa pelo sistema de
reconhecimento onde modelos pré-gravados são testados com o sinal pronunciado. Uma
vez encontrados padrões iguais aos gravados o sistema passa pela dinâmica do
reconhecimento onde a sintaxe, a semântica e o sentido da palavra são analisados e
retorna-se novamente aos modelos gravados para o processamento final e a saída em forma
de som (palavra traduzida) ou outra forma qualquer de entendimento do usuário final.
Figura 2.1: Diagrama de blocos de um sistema de Reconhecimento de Voz.
Um sistema completo de reconhecimento de voz por máquinas envolve diversos
princípios, conforme a aproximação escolhida para efetuar o reconhecimento.
6
Dentre os diversos sistemas desenvolvidos nas últimas décadas, três aproximações
destacam-se no reconhecimento automático da fala por máquinas. O objetivo aqui é prover
um entendimento essencial de cada método, bem como os pontos fortes e fracos de cada
aproximação.
Genericamente existem três aproximações para o reconhecimento automático da
fala, os quais são:
- Aproximação Acústico-fonética.
- Aproximação por Reconhecimento de Padrões.
- Aproximação por Inteligência Artificial.
A aproximação acústico-fonética (The acoustic-phonetic approach) é baseada na
teoria e postulados da fonética. As distintas unidades fonéticas da linguagem falada
geralmente são caracterizadas por um conjunto de propriedades que se manifestam no sinal
da fala, ou em seu espectro de frequência. O primeiro passo da aproximação acústico-
fonética envolve a segmentação do sinal de voz em regiões discretas no tempo, onde as
propriedades acústicas do sinal são representadas por uma (ou possivelmente diversas)
unidade fonética (ou classes). Em seguida são nomeados um ou mais rótulos fonéticos para
cada região segmentada. O segundo passo é a tentativa de validar a “palavra” na
seqüência de rótulos fonéticos obtidos no primeiro passo.
A aproximação por reconhecimento de padrões (The pattern recognition
approach) é basicamente uma aproximação na qual padrões de fala são usados
diretamente sem explicitar seu significado. Esse método de aproximação possui dois
passos: Treinamento de padrões de fala e o Reconhecimento dos padrões via
comparação. O tipo de caracterização da fala via treinamento é chamado de classificação
padrão porque a máquina aprende qual propriedade acústica da classe da fala é confiável e
repetível A utilidade deste método está na comparação direta de um sinal de fala
desconhecido com um sinal aprendido na fase de treinamento. A aproximação por
reconhecimento de padrões é o método mais utilizado nos sistemas de reconhecimento de
voz. A escolha deste método se faz pelas seguintes razões:
- Simplicidade de uso. É um método fácil de entender e rico em justificativas,
tanto na teoria matemática, quanto na teoria da comunicação.
- Robusto e invariável para diferentes vocabulários, usuários, conjunto de
características, algoritmos e regras de decisão.
- Demonstra alto desempenho.
7
A chamada aproximação por IA-Inteligência Artificial (The artificial intelligence
approach), é uma aproximação híbrida das anteriores, e explora as idéias e os conceitos de
ambos os métodos. A inteligência artificial tenta mecanizar o procedimento de
reconhecimento de voz através da visualização e análise do sistema e finalmente fazendo a
decisão das características acústicas medidas. O conceito principal da inteligência artificial
está em estar aprendendo o tempo todo e se adaptando. A IA utiliza redes neurais para
aprender as relações entre os eventos fonéticos (acústica, sintaxe, semântica) e o sinal
medido, bem como para discriminação de classes de sons.
����������������� ��� ������ ��
A figura 2.2 mostra o diagrama de blocos da aproximação acústico-fonética para o
reconhecimento de voz.
O primeiro passo no processamento é o sistema de análise do sinal de voz (passo
comum para todas as aproximações), o qual produz uma representação apropriada
(espectro) das características de variação no tempo do sinal de voz. As técnicas mais
comuns de análise espectral são: Banco de Filtros, “Linear Predictive Coding” (LPC) e a
DFT (Transformada Discreta de Fourier).
Figura 2.2: Diagrama de blocos do sistema de reconhecimento de voz acústico-fonético.
O passo seguinte é o estágio de detecção das características do sinal. A idéia aqui é
converter as medidas espectrais em um conjunto de características que descrevem as
amplas propriedades das diferentes unidades fonéticas. Entre as características propostas
para o reconhecimento da voz estão: nasal (presença ou não de ressonância nasal), fricção
8
(presença ou não de excitação da fala), formantes (freqüências do sinal e suas três
primeiras ressonantes), classificação com ou sem voz (excitação do sinal periódico ou não
periódico), porções de alta e baixa energia (amplitude da freqüência). O estágio de
deteção das características geralmente consiste de um conjunto de detetores que operam
em paralelo e usam o processamento apropriado para fazer a decisão da presença ou não,
da característica do som analisado.
O terceiro passo no procedimento é a fase de segmentação e rotulação pelo qual o
sistema tenta encontrar regiões estáveis (onde as características mudam muito pouco) e
então rotular (marcar) a região segmentada de acordo com as unidades fonéticas
individuais.
Muitos problemas estão associados com a aproximação acústico-fonética para o
reconhecimento da fala. Estes problemas, em muitos casos, são a causa da falta de sucesso
de sistemas de reconhecimento de voz na prática. Entre alguns podemos citar os seguintes:
- O método requer um extensivo conhecimento das propriedades acústicas da
unidade fonética. Este conhecimento é, na melhor das hipóteses, incompleto e
na pior, totalmente inviável para simples situações, como reconhecimento de
vogais.
- A escolha das características é feita principalmente baseada em considerações
ad hoc, ou seja, as escolhas do sistema são baseadas na intuição e não em um
bem definido senso de significado.
- O projeto dos classificadores de som não é otimizado.
- Não existe um caminho certo ou real para a rotulação e para o treinamento da
fala.
- Falta uniformidade na larga e ampla classe lingüística.
Por causa de todos este problemas, o método acústico-fonético de reconhecimento
de voz, apesar de ser uma idéia interessante, precisa de mais pesquisa e entendimento,
antes de ser usado com sucesso nos atuais sistemas de reconhecimento de voz.
��������������������� ��� ������������� ���
O diagrama de blocos da forma da aproximação por reconhecimento de padrões
para o reconhecimento de voz é mostrado na figura 2.3. Essa aproximação possuí quatro
passos que são mostrados a seguir:
9
- Características de Medida. Uma seqüência de medidas é feita na entrada do
sinal para definir o “teste padrão”. Para sinais de voz, as características de
medida são geralmente a saída de algum tipo de analisador espectral, tal como
um Banco de Filtros, ou a Transformada Discreta de Fourier (DFT).
- Padrões de treinamento. Um ou mais padrões de teste correspondentes ao
sinal da fala são usados para criar um padrão representativo das características
deste sinal. O padrão resultante pode ser derivado da média dos sinais, ou um
valor estatístico das características.
- Classificação dos Padrões. Aqui um sinal desconhecido (teste) é comparado
com cada (som) padrão de referência e a medida de similaridade entre o sinal de
teste e cada padrão de referência é computado.
- Decisão Lógica. Neste passo vários padrões de referência com valores
similares são usados para decidir qual padrão de referência melhor combina
com o sinal de teste desconhecido.
Figura 2.3: Diagrama de blocos do sistema de Reconhecimento de Padrões.
Em geral os pontos fortes e fracos da aproximação por reconhecimento de padrões
são:
a) O desempenho do sistema é sensível à soma dos treinamentos dos dados
avaliados para criação das classes dos sons. Em outras palavras, quanto maior o
treinamento, mais alto é o desempenho na realização da tarefa.
b) Os padrões são sensíveis ao meio ambiente onde se fala e também às
características do meio onde foi criada a fala. Isto significa que as
características espectrais da fala são afetadas pela transmissão e por ruídos de
fundo.
10
c) Um som de voz não específico e conhecido é usado explicitamente no sistema.
Então este método é relativamente insensível à escolha de vocabulários,
palavras, perguntas, sintaxe e semântica.
d) A leitura computacional para ambos os padrões de treinamento ou classificação
é geralmente linear e proporcional ao número de padrões de treino ou
reconhecimento. Então a computação de um grande número de classes de sons
torna-se freqüentemente proibitivo.
e) Devido ao sistema ser insensível às classes de sons, as técnicas básicas são
aplicadas a uma vasta gama de sons da fala, incluindo frases, palavras e sub
palavras. Então um conjunto básico de técnicas desenvolvidas para uma classe
de som pode ser diretamente aplicado para diferentes classes de sons, com
pequenas ou nenhuma modificações dos algoritmos.
f) É realmente forte a incorporação sintática na estrutura dos padrões de
reconhecimento, melhorando a precisão e diminuindo o tempo de computação.
��!����������������������"#� ��������� ����$��%
A idéia básica da aproximação por inteligência artificial para o reconhecimento de
voz é compilar e incorporar conhecimentos de uma vasta variedade de fontes de
conhecimento e resolver o problema. A aproximação por IA usa os conhecimentos
acústicos, lexicais, sintáticos, semânticos, e pragmáticos das sentenças. Para melhor
explicitar estes conhecimentos, define-se primeiro cada um deles:
- Conhecimento acústico: é a evidência ou não do som, ou seja, o sinal é
medido e detecta-se a presença ou não das características do som.
- Conhecimento léxico: a combinação da evidência acústica do som das
palavras, especificando um mapa léxico das palavras, ou seja, o significado das
mesmas (som da palavra).
- Conhecimento Sintático: a combinação das palavras na forma gramaticamente
correta nas sentenças ou frases.
- Conhecimento Semântico: entendido como sendo o significado da palavra, ou
seja, o que a palavra quer dizer e se o seu entendimento está de acordo com a
sentença.
- Conhecimento pragmático: refere-se à habilidade necessária para resolver
casos de ambigüidade de significado.
11
As diversas fontes de conhecimento precisam ser estabelecidas na aproximação por
Inteligência Artificial (IA). Entretanto dois conceitos chaves da Inteligência Artificial são
automaticamente conhecidos, a aquisição do conhecimento (aprendizagem) e a
adaptação. Um caminho no qual estes conceitos podem ser implementados é via
Aproximação por Redes Neurais.
A figura 2.4 mostra um diagrama de blocos de um sistema para o entendimento da
fala, baseado no modelo de percepção da fala dos seres humanos.
Figura 2.4: Diagrama de blocos conceitual do sistema de entendimento da fala nos seres humanos.
O sinal de entrada acústico é analisado por um modelo de ouvido humano (Análise
Auditiva Preliminar), que providencia a informação espectral sobre o sinal e armazena os
dados na memória de armazenamento sensorial (Armazenamento das informações). Ambas
as memórias, estática e dinâmica são usadas para armazenar os dados que serão analisados
pelos vários detectores de características (audivas, fonéticas etc). Finalmente depois de
diversos estágios de refinada detecção das características, a saída final do sistema é uma
interpretação da informação da entrada acústica.
12
������������������������� �� � ���������� ��
Para um completo entendimento do processamento de um sistema de reconhecimento
de voz, inicialmente deve-se compreender como o corpo humano produz e percebe os sons
da voz, bem como suas principais características.
���������������������� �� � ��
Inicialmente é necessário mostrar as diferentes classes dos sons da fala, ou fonética,
identificando-as através das suas características acústicas as quais são relativamente
invariantes através das palavras e locutores.
A figura 3.1 mostra o diagrama esquemático da produção e percepção da fala no ser
humano.
Figura 3.1: Diagrama esquemático do processo da produção e percepção da fala
A produção da fala inicia-se quando a “pessoa falante” formula a mensagem
mentalmente, (mensagem a qual se quer transmitir através da fala, para outra pessoa ouvir).
O próximo passo corresponde à conversão da mensagem em um código de linguagem
(palavras). Estes códigos (palavras) correspondem a uma seqüência de fonemas, os quais
devem possuir um significado (prosódia). Finalmente a pessoa que irá falar executa uma
série de comandos neuromusculares que fazem as “pregas” vocais vibrarem de forma
13
apropriada e na seqüência correta, criando assim o som da fala. Os comandos
neuromusculares controlam simultaneamente todos os aspectos do movimento das
articulações, incluindo os lábios, a mandíbula, a língua e as saídas de ar pela boca e pelo
nariz.
Após a execução da fala pelo locutor, o som produzido propaga-se pelo ar e chega
ao ouvinte. Neste momento inicia-se o processo de reconhecimento ou percepção da fala.
Primeiro o ouvinte processa o sinal acústico recebido ao longo de uma membrana no
interior do ouvido, a qual executa a análise espectral do sinal que chega. Através de um
processo de transdução neural, o sinal espectral que sai da membrana no interior do ouvido
é transformado em um sinal elétrico no nervo auditivo. A maneira com que o processo
ocorre ainda não é bem compreendido pela ciência. O fato é que a atividade neural ao
longo do nervo auditivo é convertida em um código de linguagem no cérebro, e finalmente
a mensagem é compreendida.
A figura 3.2 mostra os passos dos processos de produção e percepção da fala ao
longo de uma linha básica que informa a taxa de tempo nos vários estágios do processo,
demonstrando a leve diferença nos processos de produção e percepção da fala
Figura 3.2: Processo da produção e percepção da fala em escala temporal
14
Vê-se que a formulação de uma mensagem (texto) ou o entendimento da mesma
pelo cérebro (semântica) tem uma taxa muito baixa de processamento, em torno de 50bps.
Já na formulação do código de linguagem (fonemas), a taxa de processamento aumenta
para 200 bps, em seguida vem o processo de articulação neuro muscular onde a taxa passa
para 2000 bps. No processo final de produção da fala a transmissão é feita na taxa de
30.000 a 50.000 bps.
Os passos do mecanismo de percepção da fala também podem ser interpretados na
forma de taxa de processamento, onde seu controle segue um padrão inverso ao do
processo de produção da fala. Neste estágio a análise do som é feita rapidamente pelo
sistema auditivo, no entanto a medida que o processo de interpretação prossegue a
velocidade diminui, ficando em torno de 50 bps (bits por segundo) na fase final de
entendimento da mensagem.
������� � ������� ����� ���
A figura 3.3 mostra um plano do aparelho vocal humano obtido através do processo
de Raios-X. O aparelho vocal humano inicia-se nas “pregas” vocais ou “Glottis” e termina
nos lábios.
Figura 3.3: Raios-X do aparelho vocal humano
(Modificada de Lawrence Rabiner, pg 15. [17])
15
No ser humano masculino o tamanho do aparelho vocal é de cerca de 17cm. A área
do aparelho vocal compreendido pela língua, lábios e mandíbula varia desde zero
(totalmente fechada) até cerca de 20cm2. O aparelho nasal inicia-se no “velum” e termina
na narina.
O diagrama esquemático do mecanismo vocal humano é mostrado na figura 3.4. O
ar entra nos pulmões através do mecanismo de respiração. O ar é expelido dos pulmões
através da traquéia, a passagem do fluxo de ar pela laringe provoca a vibração das “pregas”
(cordas) vocais.
Figura 3.4: Diagrama esquemático do aparelho vocal humano
(Modificada de Lawrence Rabiner, pg 16. [17])
O fluxo de ar é cortado em pulsos quase periódicos, os quais são modulados em
freqüência na passagem da faringe, na cavidade da boca e possivelmente na cavidade
nasal. Dependendo das varias posições da articulação vocal (boca, língua, mandíbula, véu
palatino, etc) diferentes sons são produzidos.
Os pulmões, em associação com a ação dos músculos e a passagem do ar, são
responsáveis pela excitação do mecanismo vocal. O músculo força pulsos de ar para fora
dos pulmões através dos brônquios e da traquéia.
Quando as “pregas” vocais estão tensas, e o ar flui através delas causando as
vibrações, as quais produzem os sons que chamamos de fala ou voz humana.
Quando as “pregas” vocais estão relaxadas, a passagem do ar pelo aparelho vocal
torna-se turbulenta, produzindo o que chamamos de sons não pronunciados.
16
A fala é produzida como uma seqüência de sons. Então o estado das “pregas”
vocais, bem como as posições, formas, e tamanho das varias articulações, mudam
constantemente, o que se reflete no som produzido. Este sistema completo é mostrado na
figura 3.5.
3.5: Esquema completo do mecanismo fisiológico da produção da fala
�
���������� ����� �� � ������������������������ �������� �
O sinal da fala é um sinal que varia vagarosamente no tempo, quando examinado
em um curto período (entre 5 e 100 ms). Suas características são razoavelmente
estacionárias. Contudo, em longos períodos de tempo (na ordem de 1/5 s ou mais) as
características do sinal mudam, refletindo os diferentes sons da pessoa que fala.
A ilustração destes efeitos está na figura 3.6, na qual as formas de onda mostradas
correspondem aos sons iniciais da frase “It’s time ...” , falada por um ser humano
masculino (homem). Cada linha da forma de onda corresponde a 100ms (1/10 s) do sinal;
sendo que a linha inteira (todas as 5 linhas) corresponde aproximadamente a 0.5 s.
Existem várias maneiras de classificar os eventos da fala. A mais simples é via
análise da fonte de produção da fala, ou seja, as “pregas” vocais. Para caracterizar esta
análise, utilizam-se três estados de representação, que são:
17
- Silêncio (S), onde não é produzida a fala.
- Não voz (U) “Unvoiced”, na qual as cordas vocais não estão vibrando, resultando
formas de onda não periódicas e naturalmente aleatórias.
- Voz (V) “Voiced”, na qual as cordas vocais estão tensas e ocorre uma vibração
periódica quando o ar flui dos pulmões, resultando assim uma forma de onda quase
periódica da fala.
Figura 3.6: Formas de onda da expressão “It’s Time”, no domínio do tempo. (Modificada de Lawrence Rabiner, pg 18. [17] )
A primeira linha mostra a variação natural e lenta do sinal nos primeiros 100 ms, e
que corresponde a um fundo de silêncio (S) e uma baixa amplitude. Nos próximos 100 ms
(segunda linha), a forma de onda mostra um pequeno incremento no nível (S), seguido de
um fino incremento (U) e de um grosso incremento no nível da forma de onda (V) (quase
periódico). Portanto antes de iniciarmos a fala, a forma de onda é classificada como
Silêncio (S). Um breve período sem voz, Unvoiced (U) é mostrado em seguida (respiração
18
ou aspiração). Na seqüência vê-se o período de produção da fala Voiced (V),
correspondente à vogal inicial da palavra “It’s” (linhas 2 e 3).
Seguindo a análise na região da fala, região Voiced (V), existe um breve período de
Unvoiced (U) (respiração), seguida por uma região de silêncio (S) (antes do /t/ na palavra
It’s), temos em seguida um relativo longo período de Unvoiced (U), região correspondente
a liberação do /t/, seguindo pelo /s/ de It’s (linhas 3 e 4).
Finalmente há um longo período de voz (V) Voiced, região correspondente ao
ditongo /ai/ da palavra “time”. (linhas 4 e 5).
Deve ser claro que a segmentação da forma de onda da fala em regiões bem
definidas de Silêncio (S), Unvoiced (U) e Voiced (V), não é exata. Normalmente é difícil
distinguir um fraco som Unvoiced (U) do Silêncio (S), ou ainda, distinguir um fraco som
de voz Voiced (V), do som Unvoiced (U). Entretanto, pequenos erros de limite de regiões
S, U e V, não afetam significativamente as aplicações.
Um caminho alternativo para caracterizar o sinal da fala, é a representação da
informação associada aos sons através da representação espectral. Talvez a representação
mais popular deste tipo de espectrograma do som, seja a representação tridimensional da
intensidade da fala, em diferentes bandas de freqüência.
Um exemplo deste tipo de representação é mostrado na figura 3.7, a qual mostra um
espectro de banda larga no primeiro painel, um espectro de banda estreita no segundo
painel, e a forma de onda da amplitude impressa no terceiro painel. A expressão vocal da
figura 3.7, é a frase “Every Salt Breeze Comes From the Sea” , pronunciada por um
homem.
O espectro de banda larga, corresponde à análise espectral de secções de 15ms da
forma de onda, usando na análise um filtro de banda larga (125 Hz banda do filtro), com
análises avançando a cada 1ms.
O espectro de banda estreita, (segundo painel da figura 3.7) corresponde à análise
espectral de secções de 50ms da forma de onda, usando na análise um filtro de banda
estreita (40 Hz banda do filtro), com análises avançando também a cada 1ms.
Nota-se claramente que nos períodos de silêncio, não se vê atividade espectral,
devido à redução no nível do sinal.
Além da representação no tempo e na freqüência, existe ainda uma terceira forma
de representar um sinal da fala, isto é feito através da parametrização da atividade espectral
19
baseada em modelo de produção da fala. Este método de representação é mais teórico do
que prático.
Figura 3.7: Espectrogramas e amplitude da fala
“EVERY SALT BREEZE COMES FROM THE SEA”
(Modificada de Lawrence Rabiner, pg 19. [17])
����� ��� � ������ ������������ �� � �
O número de distintos sons da fala, ou seja, de distintos fonemas em uma
linguagem é freqüentemente uma matéria de julgamento e não é invariante nas diferentes
línguas. A tabela 3.1, mostra uma lista condensada de símbolos fonéticos da língua Inglesa
Americana. Nesta tabela mostra-se o fonema entre barras e ao lado um exemplo da palavra
onde o mesmo ocorre. A tabela 3.1 mostra 48 sons, incluindo 18 vogais ou combinações de
vogais (chamadas de ditongos), 4 vogais como consoantes, 21 consoantes simples, 4 sons
silábicos.
20
Tabela 3.1: Lista de símbolos fonéticos da língua Inglesa Americana
������������� ������ �
A palavra fonologia é formada pelos elementos gregos: fono- ("som, voz") e -logia
("estudo, conhecimento"). Significa literalmente o "estudo dos sons". Já sabemos porém,
que os sons que essa parte da gramática estuda, são os fonemas (novamente o radical grego
fono-, e agora ao lado do elemento -ema, "unidade distinta").
Para compreender claramente o que é um fonema, compare as palavras abaixo :
Bala Gala
Lendo em voz alta as duas palavras, percebe-se que cada uma das letras destacadas
representa um som diferente. Percebe-se também que, em cada uma das palavras, a única
diferença sonora é justamente a que é provocada por esses sons. Como as palavras têm
significados diferentes e a única diferença que apresentam é a provocada por esses dois
sons, somos levados a concluir que o contraste entre esses dois sons é que produz a
diferença de significado entre as duas palavras.
21
Cada letra representa, no caso, um fonema, ou seja, uma unidade sonora capaz de
estabelecer diferenças de significado. Observe que as demais letras de cada uma das
palavras também representam fonemas. Para perceber isso, basta trocá-las sucessivamente
por outras que representam sons diferentes - as sucessivas trocas produzem palavras de
significados diferentes :
gala - gata - galo - gula - gola - bala - bela
Em todos esses casos, cada letra representa um fonema. Se fizermos, no entanto, as
seguintes trocas, surgirão alguns problemas :
gala - gela bala – barra
Quando trocamos a letra “a” de gala pela letra “e”, estamos produzindo duas
modificações de fonemas: observe que, além da mudança óbvia do fonema representado
pelo “a” para o fonema representado pelo “e”, há uma mudança no som representado pela
letra “g”: em gala, essa letra representa um som comparável ao de gato; em gela,
representa um som comparável ao de girafa ou janela. No caso da troca bala por barra, o
que ocorre é um fenômeno diferente: observe que em barra há duas letras que representam
um único som (“rr”).
Nunca devemos confundir fonemas e letras: os fonemas são sons - portanto,
faláveis e audíveis. As letras são sinais gráficos - portanto, visíveis - que procuram
representar os fonemas. Essa representação, no entanto, não é perfeita: como vimos,
ocorrem muitos problemas de falta de correspondência exata entre os fonemas e as letras
que tentam representá-los.
Há letras que representam fonemas diferentes (como o g, em gala e gela), como há
fonemas representados por letras diferentes (como o que as letras g e j representam em
girafa e janela); há casos em que uma única letra é representada por dois fonemas (como o
x de axioma - lê-se "aksioma"); há até mesmo, casos em que a letra não corresponde a
nenhum fonema (o h de hora, por exemplo).
Resumindo:
- Fonologia: parte da Gramática que estuda os fonemas.
- Fonemas: unidades sonoras capazes de estabelecer diferenças de
significado. São, em outras palavras, os sons característicos de uma
22
determinada língua. Note que, com um número relativamente pequeno desses
sons, cada língua é capaz de produzir milhares de palavras e infinitas frases.
- Letras : são sinais gráficos criados para a representação escrita das línguas.
Não devem ser confundidas com os fonemas, que são sons.
�
�������� !"#$%�&$��'!()$�� *+)()"%$
Como sabemos, não devemos confundir fonemas e letras, pois não há
necessariamente correspondência entre o que se fala e o que se escreve.
Para superar esse problema, criou-se um sistema de símbolos em que cada fonema
tem apenas uma representação. Esse sistema é o alfabeto fonético, usado pelos
especialistas em seus estudos e também para o ensino de línguas em geral. Em muitos
dicionários de línguas estrangeiras são encontrados esses símbolos, que indicam a forma de
pronunciar as palavras. A Tabela 3.1, mostra os fonemas da língua Inglesa Americana.
A língua portuguesa do Brasil apresenta um conjunto de 33 fonemas. A cada um
deles corresponde um único símbolo escrito em alfabeto fonético.
Convencionalmente, esses símbolos são colocados entre barras oblíquas. Os
fonemas estão divididos em vogais, semivogais e consoantes.
Na Tabela 3.2: são mostradas as semivogais da língua Portuguesa do Brasil.
Na Tabela 3.3: são mostrados os fonemas das Consoantes.
Na Tabela 3.4: são apresentadas as vogais.
Semivogais
/ j / cai, põe /kaj/, /põj/
/ w / pau, pão /paw/, /pãw/
Tabela 3.2 Lista de símbolos fonéticos das semivogais da Língua Portuguesa do Brasil
O uso de símbolos para a transcrição fonológica evidencia alguns problemas da
relação entre fonemas e letras: por exemplo, o símbolo /k/ transcreve com um mesmo
fonema o som representado pela letra “c” em cara e pelas letras “qu” em quero.
Observa-se ainda que os símbolos referentes às vogais evidenciam a existência de
doze sons distintos - para os quais existem apenas cinco letras.
23
Consoantes
Símbolo Exemplo Transcrição Fonológica
/ p / paca /paka/
/ b / bula /bula/
/ t / Tara /tara/
/ d / data /data/
/ k / Cara, quero /kara/, /k ro/
/ g / Gola, guerra /g la/, /g Ra/
/ f / Faca /faka/
/ v / Vala /vala/
/ s / Sola, assa, moça /s la/, /asa/, /mosa/
/ z / asa, zero /aza/, /z ro/
/ / mecha, xá /m a/, / a/
/ / Jaca, gela / aka/, / la/
/ m / Mola /m la/
/ n / Nata /nata/
/ / Ninho /n o/
/ l / Lata /lata/
/ / calha /ka a/
/ r / Mara /mara/
/ R / Rota, carroça /R ta/, /kaR sa/
Tabela 3.3: Lista de símbolos fonéticos das consoantes da Língua Portuguesa do Brasil
Vogais
/ a / cá /ka/
/ e / mel /m l/
/ e / seda /seda/
/ i / rica /Rica/
/ / sola /s la/
/ o / soma /soma/
/ u / gula /gula/
/ ã / manta,maçã /mãta/, /masã/
24
/ / Tenda /t da/
/ / Cinta /s ta/
/ õ / conta, põe /kõta/, /põj/
/ / Fundo /f do/
Tabela 3.4: Lista de símbolos fonéticos das vogais da Língua Portuguesa do Brasil
�
������,$%%-.-/$01 �& %�� !"#$%�&$��'!()$�� *+)()"%$�& �2*$%-,�
Os fonemas da língua portuguesa são classificados em vogais, semivogais e
consoantes. Esses três tipos de fonemas são produzidos por uma corrente de ar que pode
fazer vibrar ou não as cordas vocais. Quando ocorre vibração das cordas vocais, o fonema
é chamado sonoro; quando elas não vibram, o fonema é surdo. Além disso, a corrente de
ar pode ser liberada apenas pela boca ou parcialmente também pelo nariz. No primeiro
caso, o fonema é oral; no segundo, o fonema é nasal.
������ %�� ($-%�
As vogais são fonemas sonoros produzidos por uma corrente de ar que passa
livremente pela boca. Em nossa língua, desempenham o papel de núcleo das sílabas. Em
termos práticos, isso significa que em toda sílaba há necessariamente uma única vogal.
As diferentes vogais resultam do diferente posicionamento dos músculos bucais
(língua, lábios e véu palatino). Sua classificação é feita em função de diversos critérios:
A- Quanto à zona de articulação, ou seja, de acordo com a região da boca em que
se dá a maior elevação da língua; assim, podem ser anteriores, centrais e
posteriores;
B- pela elevação da região mais alta da língua; por este critério, podem ser altas,
médias e baixas;
C- quanto ao timbre; podem ser abertas ou fechadas.
Além desses critérios, as vogais podem ser orais ou nasais. Todos os fonemas
vocálicos são sonoros. A Tabela 3.5, apresenta a classificação das vogais da Língua
Portuguesa do Brasil de acordo com esses critérios. No momento da classificação de uma
25
determinada vogal, devem ser considerados os diversos critérios: um /a/, por exemplo,
deve ser descrito como uma vogal oral, central, baixa.
Classificação Anteriores Centrais Posteriores
Altas /i/ / / - /u/ / /
Médias Fechadas /e/ / / - /o/ /õ/
Médias Abertas / / - / /
Baixas - /a/ /ã/ -
Tabela 3.5: Classificação das vogais da Língua Portuguesa do Brasil
Observação: A distribuição das vogais nesse quadro forma um triângulo. Esse triângulo
simula o movimento da língua dentro, da cavidade bucal para a pronuncia das diferentes
vogais. Ao se pronunciar todas as vogais orais, começando pelo /i/ e seguindo a ordem do
quadro até o /u/, percebe-se que a língua percorrerá o caminho indicado pelo triângulo.
Começando pelo /u/ em direção ao /i/, a língua percorrerá exatamente o caminho inverso.
������ %��"#-3 ($-%�
Há duas semivogais na língua portuguesa, representadas pelos símbolos /j/ e /w/ e
produzidas de forma semelhante às vogais altas /i/ e /u/. A diferença fundamental entre as
vogais e as semivogais está no fato de que estas últimas não desempenham o papel de
núcleo silábico. Em outras palavras: as semivogais necessariamente acompanham alguma
vogal, com a qual formam uma sílaba.
Infelizmente, as letras utilizadas para representar as semivogais em português são
utilizadas também para representar vogais, o que cria alguns problemas. A única forma de
diferenciá-las efetivamente é falar e ouvir as palavras em que surgem. Observe os casos
abaixo:
País - pais baú - mau
Em “País” e “baú”, as letras “i” e “u” representam respectivamente as vogais /i/ e
/u/. Já em “pais” e “mau”, essas letras representam as semivogais /j/ e /w/. Isso pode ser
26
facilmente percebido ao se observar como a articulação desses sons é diferente em cada
caso; além disso, observa-se que “País” e “baú” têm ambas duas sílabas, enquanto “pais”
e “mau” têm ambas uma única sílaba.
�
������ %� !% $!+"%
Para a produção das consoantes, a corrente de ar expirada pelos pulmões encontra
obstáculos ao passar pela cavidade bucal. Isso faz com que as consoantes sejam
verdadeiros "ruídos", incapazes de atuar como núcleos silábicos. Seu nome provém
justamente desse fato, pois, em português, sempre somam com as vogais, que são os
núcleos das sílabas.
A classificação das consoantes baseia-se em diversos critérios:
A- Modo de articulação: indica o tipo de obstáculo encontrado pela corrente de ar
ao passar pela boca. São oclusivas aquelas produzidas com obstáculo total; são
constritivas as produzidas com obstáculo parcial. As constritivas se
subdividem em fricativas (o ar sofre fricção), laterais (o ar passa pelos lados
da cavidade bucal) e vibrantes (a língua ou o véu palatino vibra);
B- Ponto de articulação: indica o ponto da cavidade bucal em que se localiza o
obstáculo à corrente de ar. As consoantes podem ser bilabiais (os lábios entram
em contato), labiodentais (o lábio inferior toca os dentes incisivos superiores),
linguodentais (a língua toca os dentes incisivos superiores), alveolares (a
língua toca os alvéolos dos incisivos superiores), palatais (a língua toca o
palato duro ou céu da boca) e velares (a língua toca o palato mole, ou véu
palatino);
C- As consoantes podem ser surdas ou sonoras, de acordo com a vibração das
cordas vocais, e ainda orais ou nasais, de acordo com a participação das
cavidades bucal e nasal no seu processo de emissão.
No momento da classificação de uma consoante, deve-se considerar os diversos
critérios; assim, por exemplo, a consoante /t/ será oral, oclusiva, linguodental, surda; já a
consoante /v/ será oral, constritiva, fricativa, labiodental, sonora.
27
��4�������������������� ���
Grande parte das informações que o ser humano recebe são transmitidas por ondas
sonoras. Elas, normalmente, provêm do ambiente que nos cerca e são originadas de
diversas fontes sonoras. O sistema auditivo dos seres humanos permite a captação dessas
ondas e o reconhecimento do conteúdo de informação que possuem.
Existem modelos de análise espectral que são baseados no entendimento do sistema
de processamento do sinal de voz pelo ouvido humano. A figura 3.8 mostra o ouvido
humano com suas três principais regiões: Ouvido Externo, Ouvido Médio e Ouvido
interno.
Figura 3.8: Modelo do ouvido humano (Modificada de Lawrence Rabiner, pg 132. [17])
A parte do ouvido externo compreende a Orelha e o canal externo onde o som é
afunilado. A onda de som alcança o ouvido e é guiada através do ouvido externo para o
ouvido médio.
O ouvido médio compreende a membrana do tímpano na qual o som provoca a
vibração do sistema transdutor mecânico (martelo), o qual transforma a forma de onda
acústica em vibrações mecânicas no ouvido interno.
28
O ouvido interno consiste na “cóclea”, que é um fluido que se encontra dentro da
membrana basilar, e o nervo auditivo.
Distribuídos ao longo da membrana basilar encontram-se um conjunto de sensores
chamados de “inner hair cells” (IHC), o quais convertem o sinal mecânico em atividade
neural.
Compreender o funcionamento do sistema humano de produção e percepção dos
sons é um passo importante no desenvolvimento de sistemas de aquisição e análise dos
sons da fala.
��5� �6������� ��
Neste capítulo foram apresentadas as maneiras de como o corpo humano percebe e
reconhece um sinal de voz. Além disso foram explanadas as características da fala tanto no
domínio do tempo quanto no domínio da freqüência. A compreensão destes fatores é de
suma importância no desenvolvimento de um sistema de reconhecimento de voz, pois
definem o comportamento do sinal a ser processado. Apresentou-se ainda a teoria que
envolve a fonologia e a fonética das palavras com suas características e implicações. No
entanto esta teoria somente é importante quando trabalhamos com um sistema de
reconhecimento de voz que utiliza a aproximação Acústico-fonética ou por Inteligência
Artificial. Pelos motivos apresentados no capitulo 2, utilizaremos a aproximação por
Reconhecimento de Padrões no desenvolvimento deste estudo.
29
������������������ ���������������������
Os itens a serem estudados neste capítulo são de fundamental importância para um
sistema de reconhecimento de voz, pois correspondem ao primeiro passo de um sistema de
reconhecimento de voz prático. Para se realizar um bom reconhecimento de voz com
qualidade deve-se ter um sinal amostrado, sem ruídos e sem entrelaçamentos, ou seja, um
sinal com o máximo de exatidão e precisão.
O sinal de voz emitido pelo locutor (pessoa que fala ao microfone) é adquirido pelo
computador através da placa de som.
Antes de desenvolver qualquer sistema de aquisição de dados, deve-se entender as
quantidades físicas que se quer medir, as características dessas quantidades físicas, o
sensor apropriado para medição, e o hardware de aquisição de dados apropriado e o
software necessário para analisar os dados coletados.
��� ������������������
A Acústica é a parte da Física que estuda o som. O som é a sensação percebida pelo
cérebro que se relaciona com a chegada no ouvido de ondas de vibração mecânica. Todo
sistema que emite som é uma fonte sonora. Em geral, costuma-se confundir o conceito de
som com o conceito de onda sonora. Por isso, pode-se dizer que o som se propaga nos
ambientes materiais e elásticos através de ondas. As ondas sonoras são vibrações
sincronizadas das moléculas que constituem o meio. Ao vibrarem em conjunto, elas criam
em torno da fonte sonora regiões de alta e baixa pressão. Essas variações de pressão se
propagam no meio como uma onda mecânica longitudinal.
O modelo do ouvido humano mostrado no capitulo 3, pode detectar freqüências
sonoras na faixa de 16 a 17.000 Hz. Todavia estes limites não são fixos, mas variam com a
idade e também de um indivíduo para o outro. O limiar de potência sonora capaz de
induzir uma sensação dolorosa é, no entanto, mais constante e se situa entre 140 e 160 dB
[18].
A voz humana, quando analisada em seu espectro de frequência, apresenta
freqüências de até 6.000 Hz. Na fala em alta velocidade a duração das vogais sofre um
encurtamento em relação das consoantes. Devido a este fato a velocidade com que as
30
palavras são pronunciadas influem diretamente na inteligibilidade da frase. Portanto, para
que se possa entender corretamente um locutor, o mesmo deve ter uma entonação sem
muitas variações na velocidade da pronúncia.
����� ������������������������ !"�����#����$�
�
As qualidades fisiológicas dos sons são:
- Altura
- Intensidade
- Timbre
Altura: é a qualidade que permite que os sons possam ser classificados em graves
(baixa freqüência) e agudos (alta freqüência). Os sons com frequência menor do que 16Hz
são chamados de infra-sons, enquanto os de freqüência maior do que 17.000Hz são
denominados ultra-sons. Alguns animais são capazes de emitir e de detectar ultra-sons.
Entre eles estão muitos insetos, mas o exemplo mais relevante é o do morcego. Esse
animal, ao voar, emite, a cada segundo, 10 ou mais pulsos sonoros cuja freqüência está
entre 20.000 a 100.000Hz.
Intensidade: Intensidade é a qualidade que permite um som ser percebido a uma
maior ou menor distância da fonte sonora. Quanto à intensidade, os sons podem ser fortes
ou fracos. Como o ouvido humano não tem a mesma sensibilidade para todas as
frequências sonoras, mas é mais sensível aos sons cujas freqüências se situam entre 2.000 e
4.000Hz, a intensidade dos sons ouvidos também varia com a freqüência. Além disso, a
intensidade dos sons:
- É proporcional ao quadrado da amplitude da onda sonora;
- É mais intensa quanto maior for a superfície de vibração da fonte sonora;
- Aumenta com a densidade do meio em que ele se propaga;
- Decai com o quadrado da distância entre o observador e fonte sonora, quando o
som se propaga em meio homogêneo e infinito;
- Depende da proximidade de ressoadores, pois eles reforçam a intensidade do som;
- É alterada pelos ventos. Estes interferem na intensidade do som quando a
distância entre a fonte e o observador é maior do que 6m.
31
A tabela 4.1 mostra as intensidades médias de sons do ambiente, desde o limiar da
audição, cuja intensidade é em torno de 0 dB, até o limite de lesão do tímpano, em torno de
160 dB.
Tipos de som Intensidade (dB)
Limiar da audição 0
Farfalhar das folhas 10
Ambiente de biblioteca 20
Som ambiental médio 40
Conversação normal 60
Rua com grande tráfego 70
Rádio em volume alto 80
Trem em Movimento 100
Limiar de desconforto 120
Limiar da dor 140
Lesão do tímpano 160
Tabela 4.1: As Intensidades médias dos sons do ambiente
Timbre: é a qualidade que diferencia dois sons de mesma altura e de mesma
intensidade, mas que são produzidos por fontes sonoras diferentes. O timbre de um som
depende do conjunto dos sons secundários (sons harmônicos) que acompanham o som
principal.
����%������������������� ���������
O propósito de qualquer sistema de aquisição de dados é proporcionar as
ferramentas e recursos necessários para fazer a aquisição de dados confiáveis.
Deve-se pensar em um sistema de aquisição de dados como uma coleção de
“software” e “hardware” que conecta um sistema gerenciador (computador) com o mundo
físico.
Um sistema de aquisição de dados típico consiste de:
a) Hardware de aquisição de dados
b) Sensores e atuadores (transdutores)
32
c) Hardware de condicionamento de sinal
d) O computador
e) Software
a) Hardware de aquisição de dados: O coração de qualquer sistema de aquisição
de dados é o “hardware”. Sua função principal é converter sinais analógicos em sinais
digitais, e converter sinais digitais em sinais analógicos.
b) Sensores e atuadores (transdutores):. Um transdutor é um dispositivo que
converte energia de entrada em uma outra forma de energia de saída. Por exemplo, um
microfone é um sensor que converte energia do som (na forma de pressão) em energia
elétrica, enquanto um alto-falante é um atuador que converte energia elétrica em energia de
som.
c) Condicionamento de sinal: Sinais de um sensor são freqüentemente
incompatíveis com hardware de aquisição de dados. Para superar esta incompatibilidade,
deve-se condicionar o sinal. Por exemplo, pode ser preciso condicionar um sinal de
entrada, amplificá-lo ou remover as componentes de freqüência não desejadas.
d) O computador: O computador deve prover um processador, um relógio de
sistema, um sistema (bus) para transferir dados, memória e espaço de disco para
armazenar dados.
e) O Software: O Software de aquisição de dados permite trocar informações entre
o computador e o “hardware”. Por exemplo: um software típico permite configurar a taxa
de amostragem da placa de aquisição (hardware), e adquirir uma quantidade de dados
predefinida.
Figura 4.1: Modelo do sistema de Aquisição de Dados
33
Os componentes da aquisição de dados, e a relação entre eles, são mostrados na
figura 4.1. A figura 4.1 mostra ainda as duas características importantes de um sistema de
aquisição de dados:
- O Sinal;
- Os Dados.
- O Sinal: é adquirido pelo sistema, condicionado e convertido em dados que um
computador pode ler, e finalmente analisado para se extrair informações significantes.
Por exemplo, um sinal com níveis de som é adquirido de um microfone,
amplificado, digitalizado por uma placa de som, e armazenado para uma subseqüente
análise do conteúdo de freqüência. O software MATLAB é capaz de realizar todas estas
tarefas.
- Os Dados: Uma vez processado, o sinal de som se transforma em dados no
computador que são convertidos em um sinal analógico e enviados para um atuador (parte
final).
Por exemplo, um vetor de dados no programa MATLAB é convertido em sinal
analógico por uma placa de som e enviado para um alto-falante.
��&���'��(������������ ����������
O hardware de aquisição de dados pode ser interno e instalado dentro do
computador, ou externo e conectado ao computador por um cabo.
Ao nível mais simples, o “hardware” de aquisição de dados é caracterizado pelos
subsistemas que possui. Um subsistema é um componente de “hardware” de aquisição de
dados que executa uma tarefa especializada. O dispositivo de hardware que consiste em um
subsistema múltiplo é chamado de Placa de “hardware” de multifunção. Este dispositivo é
mostrado na figura 4.2.
Basicamente uma placa de “hardware” de aquisição de dados é composta por quatro
subsistemas:
- Entrada Analógica
- Saída Analógica
- Entrada e Saída Digital
- Contagem e Temporização.
34
- Subsistema de Entrada analógica: converte sinais de entrada analógicos de um
sensor em bits que podem ser lidos pelo computador. São chamados de subsistemas de AI
(Analog Input), conversor de A/D, ou ADCs .
Figura 4.2: Placa de “hardware” de um sistema de Aquisição de Dados
- Subsistema de Saída analógica: convertem dados digitais armazenados no
computador para um sinal analógico. Este subsistema executa a conversão inversa do
subsistema de entrada analógica. São chamados de subsistemas de AO (Analog Output),
conversor de D/A, ou DACs.
- Subsistemas de Entrada/Saída Digitais : Também chamados de DIO (digital
input/output), são projetados para fazer a entrada ou a saída de sinais digitais (níveis
lógicos) para o “hardware”.
- Subsistema de Contagem e Temporização: O subsistema de contagem e
temporização “counter/timer” (C/T) é usado para contar tempo, freqüência, e medir o
período de um trem de pulsos.
����������������
Um sensor converte os fenômenos físicos de interesse em um sinal elétrico de
entrada no hardware de aquisição de dados. Existem dois tipos principais de sensores
baseados na entrada de dados que eles produzem: sensores digitais e sensores analógicos.
35
- Sensores digitais: produzem um sinal de que é uma representação digital do sinal
de entrada analógico, e tem valores discretos de magnitude e medidas de tempos discretos.
- Sensores analógicos: produzem um sinal que é diretamente proporcional ao sinal
medido, e é contínuo em magnitude e no tempo. A maioria das variáveis físicas como
temperatura, pressão, e aceleração são contínuas por natureza e são prontamente medidas
com um sensor analógico.
Para escolher o melhor sensor analógico, deve-se verificar as características da
variável física que se deseja medir com as características do sensor.
A saída de um sensor pode ser um sinal analógico ou um sinal digital, e a variável
de saída normalmente é uma tensão, embora existam alguns sensores com saídas de
corrente.
A corrente é usada freqüentemente para transmitir sinais em ambientes ruidosos
porque o sinal de corrente é muito menos afetado por ruídos do meio ambiente.
No entanto, o sinal mais comumente conectado é um sinal de tensão. Por exemplo,
termopares, acelerômetros, microfones, todos produzem sinais de tensão. Há três aspectos
principais de um sinal de tensão que precisam ser considerados:
- A Amplitude
- A Freqüência
- A Duração da Aquisição.
- Amplitude: Se o sinal for menor que alguns milivolts, deve-se amplificar este
sinal. Se o valor máximo do sinal é maior que o suportado pelo “hardware” analógico
(tipicamente ±10 V), deve-se dividir o sinal usando uma rede de resistores.
- Freqüência: Sempre que se adquire dados, deve-se decidir a freqüência mais alta
a ser medida. O componente de freqüência mais alta do sinal determina com que
freqüência deve-se amostrar o sinal de entrada. Em freqüências mais altas podem estar
presentes ruídos que são removidos filtrando o sinal antes de ser digitalizado.
- Duração: Por quanto tempo deve-se amostrar um sinal? Se a amostragem estiver
sendo armazenada na memória ou em um arquivo de disco, então a duração da amostragem
determina os recursos de armazenamento requeridos.
36
��)������������������������*���
Como citado anteriormente, os sinais de um sensor são freqüentemente
incompatíveis com hardware de aquisição de dados, e para superar esta incompatibilidade,
deve-se condicionar o sinal do sensor. O tipo de condicionamento de sinal requerido
depende do sensor que se está usando. Por exemplo, um sinal pode ter uma amplitude
pequena e requer amplificação, ou pode conter componentes de freqüência não desejados e
pode requerer filtragem. Os modos comuns para condicionar sinais incluem:
- Amplificação
- Filtragem
- Isolamento elétrico
- Multiplexagem
- Fonte de excitação
- Amplificação: Sinais de baixa amplitude (menos que ou ao redor de 100
milivolts) normalmente precisam ser amplificados.
Por exemplo, o sinal de saída de um termopar é pequeno e deve ser amplificado
antes de ser digitalizado.
- Filtragem: Remove os sinais indesejáveis que estão fora da banda de freqüência
de interesse.
- Isolamento elétrico: Se o sinal de interesse contiver transientes de alta-voltagem
que podem danificar o computador, então os sinais do sensor devem ser eletricamente
isolados do computador para propósitos de segurança.
- Multiplexagem: Esta técnica consiste em medir vários sinais com apenas um
dispositivo de medida.
- Fonte de excitação: Alguns sensores exigem uma fonte de excitação para operar.
��+�������������
O computador deve possuir um processador, um relógio de sistema, um
barramento de dados (bus) para transferir dados, e memória e espaço de disco para
armazenar dados.
37
Saber que foi registrado o que um sensor está lendo não é bastante, geralmente
precisa-se saber também quando esta medida aconteceu. Os dados são transferidos do
hardware à memória do sistema por acesso de memória dinâmico (DMA), por interrupções
(IRQ), ou diretamente pelo software. O DMA é um controlador de hardware extremamente
rápido. As interrupções podem ser lentas devido ao tempo de espera entre os pedidos de
interrupção e a resposta do computador. A máxima taxa de aquisição também é
determinada pela arquitetura do barramento de dados (bus) do computador.
�
��,�������(���
Independente do hardware que se use, deve-se enviar e receber informações deste
hardware. Também é preciso fornecer ao “hardware” informações de como se integrar com
outro hardware e dos recursos de computador. Esta troca de informação é realizada com o
software.
Existem dois tipos de software:
- Software chamado de “driver” (gerencia o hardware)
- Software de aplicação
Software de “driver”:. Permite o acesso e controle das capacidades do hardware.
Entre outras coisas, o software de driver básico permite:
- Receber e enviar dados à placa do “hardware”;
- Controlar a taxa à qual os dados são adquiridos;
- Integrar o “hardware” de aquisição de dados com recursos de computador, como
interrupções do processador, DMA e memória;
-Integrar o “hardware” de aquisição de dados com “hardware” de
condicionamento;
- Acessar múltiplos subsistemas em uma determinada placa de aquisição de dados;
- Acessar placas de aquisição de dados múltiplas.
Software de aplicação: Fornece uma interface conveniente ao software de driver.
Um software de aplicação básico permite:
- Obter um relatório do número de amostras adquiridas;
- Gerar eventos;
38
- Administrar os dados armazenados em memória de computador;
- Condicionar um sinal;
- Imprimir os dados adquiridos;
- Analisar os dados.
��-��������� ��������������*./�����
A aquisição de um sinal de som deve ser feita analogicamente, pois o som é um
sinal analógico por natureza. Após a aquisição se faz a conversão A/D (analógico/digital)
para que o sinal amostrado possa ser interpretado pelo computador.
��-������$�����"�$�
Amostrar um sinal significa pegar um "instantâneo" do sinal de um sensor em um
tempo discreto. Para a maioria das aplicações, o intervalo de tempo entre amostras é
mantido constante.
Para a maioria dos conversores digitais e analógicos, a amostragem é executada
por um circuito “Sample/Hold” (S/H) . A operação de um circuito de S/H segue estes
passos:
a) Em um determinado instante da amostragem, o interruptor conecta o “buffer” e o
capacitor a uma entrada de sinal;
b) O capacitor é carregado com a tensão da entrada do sinal;
c) A carga no capacitor é mantida até que o conversor A/D digitalize o sinal;
d) Para múltiplos canais (multiplexação) e apenas um conversor A/D, os passos
anteriores devem ser repetidos para cada entrada de sinal (canal);
e) O processo inteiro deve ser repetido para o próximo instante de amostragem.
A máxima taxa de amostragem que o hardware trabalha é tipicamente a taxa
avaliada em um canal. Então, a máxima taxa de amostragem por canal é determinada pela
fórmula:
Taxa Máxima de = MÁXIMA TAXA DA PLACA DE AQUISIÇÃO [4.1]
Amostragem por Canal NÚMERO DE CANAIS VARRIDOS
39
Sempre que um sinal contínuo é amostrado, um pouco de informação é perdida. O
objetivo fundamental é amostrar o sinal de entrada a uma determinada taxa onde o sinal de
interesse seja bem caracterizado e a quantidade de informação perdida minimizada.
Ao se amostrar um sinal a uma taxa muito lenta, acontece o efeito chamado de
entrelaçamento (aliasing). O entrelaçamento pode acontecer para qualquer tipo de sinal.
��-�%���0�1��2�34��
Como discutido na seção anterior, quando é feita a amostragem de um sinal
instantâneo analógico, este sinal analógico amostrado deve ser convertido em um valor de
tensão em números binários que o computador pode entender. O processo de transformar
valores da amplitude de um sinal de informação em valores discretos tomados de um
conjunto finito de amplitudes é chamado de quantização.
Durante a quantização, o conversor A/D usa um número finito de valores
uniformemente espaçados para representar o sinal analógico. O número de valores
diferentes é determinado pelo número de bits usados para a conversão. A maioria dos
conversores A/D trabalha com 12 ou 16 bits.
Tipicamente, o conversor seleciona o valor digital que é mais próximo do valor
amostrado.
A figura 4.3 mostra uma senóide de 1 Hz quantizada por um conversor A/D de 3
bits.
O número de valores quantizados é determinado pelo número de bits. No caso,
como são 3 bits obtêm-se no máximo 23 = 8 valores digitais distintos. O maior valor
representável é determinado pelo número binário 111 = 22 + 21 + 20 = 7, e o menor valor
representável é determinado pelo número binário 000 = 0. Sempre haverá algum erro
associado com a quantização de um sinal contínuo.
�
��-�&�������4�����5���#4���
Sempre que se adquire dados medidos, deve-se fazer todo esforço para maximizar
sua precisão e sua exatidão. A qualidade de sua medida depende da precisão e da exatidão
do sistema de aquisição de dados inteiro, e pode ser limitado por fatores como a resolução
da placa de aquisição ou o ruído do ambiente.
40
Exatidão: A exatidão de um valor medido é definida pela relação entre a
quantidade medida e o verdadeiro valor daquela quantidade.
Precisão : O número de bits que representam um sinal analógico determina a
precisão (resolução) do dispositivo. Quanto mais bits tiver a placa de aquisição de dados
mais precisa será a medida. A precisão global de um sistema de aquisição de dados é
normalmente determinada pelo conversor de A/D, e é especificado pelo número de bits que
representa o sinal analógico. A maioria das placas usa 12 ou 16 bits. A precisão da medida
é determinada por :
Precisão = uma parte em 2(número de bits) [4.2]
Figura 4.3: Sinal senoidal de 1Hz amostrado por um quantizador de 3 bits
A precisão em volts e dada por
Precisão = Faixa dinâmica / 2(número de bits) [4.3]
Por exemplo, se estivermos usando um conversor A/D de 12 bits, para uma faixa
dinâmica de 12 volts a precisão será de,
Precisão = 12 volts/ 2(12) [4.4]
41
Isto significa que o conversor pode detectar diferentes tensões até o nível de
0.00244 volts ou 2,44 mV.
��-�������1��� �3�$�1���
O entrelaçamento “Aliasing” acontece quando o sinal amostrado contiver
componentes de freqüência maior que a metade da taxa de amostragem. A regra usada para
prevenir o entrelaçamento “Aliasing” é determinada pelo teorema de Nyquist que diz:
- Um sinal analógico pode ser reconstruído, sem erro, de amostras retiradas
em intervalos de tempo iguais, desde que a taxa de amostragem do sinal seja
maior ou igual a duas vezes a componente de freqüência mais alta do sinal
analógico.
Fs ≥≥≥≥ Fmáx
Porém, se o sinal de entrada é corrompido por ruídos, então entrelaçamentos ainda
podem acontecer.
��-�)������1�6��71����#����#���#��'��#8����9������$!����
A transferência de dados adquiridos do hardware para memória do sistema segue
estes passos:
- Os dados adquiridos são armazenados dentro do hardware em um “buffer”
chamado de first in first out (FIFO) .
- Os dados são transferidos do “buffer” de FIFO para a memória do sistema através
de uma interrupção ou do DMA.
Estes passos acontecem automaticamente. O que é requerido do programador é
apenas alguma configuração inicial do dispositivo de hardware quando for instalado.
Buffer de FIFO : é usado para armazenar temporariamente os dados adquiridos.
Os dados são armazenados temporariamente até que possam ser transferidos à memória do
sistema.
42
Interrupções: É o método mais lento, mas na maioria dos casos é o mais comum
para mover os dados adquiridos para a memória do sistema. Este método consiste no
processo de geração de um pedido de interrupção ao processador (IRQ). Este sinal pode ser
gerado quando uma amostra for adquirida ou quando amostras múltiplas são adquiridas.
Dependendo de seu sistema específico, a transferência de dados por interrupção não
é uma boa escolha quando a taxa de amostragem for maior do que 5 kHz.
DMA: Acesso de memória direto (DMA) é um sistema por meio do qual são
armazenadas amostras automaticamente na memória de sistema enquanto o processador
faz qualquer outra coisa.
O computador possui vários canais de DMA diferentes. Dependendo de sua
aplicação, pode-se usar um ou mais destes. Por exemplo, canais de entrada e saída
simultâneas requerem um canal de DMA para entrada e outro canal de DMA para a saída.
��:������
O ruído pode ser gerado por componentes elétricos do amplificador de entrada
(ruído interno), ou pode ser acrescentado quando o sinal passa próximo a instalações
elétricas (ruído externo). Técnicas utilizadas para reduzir os efeitos dos ruídos são descritas
a seguir:
Ruídos internos: Os ruídos internos surgem de efeitos térmicos no amplificador.
Amplificadores geram alguns microvolts de ruído interno, o que limita a resolução do sinal
a este nível. A quantidade de ruído acrescentada ao sinal depende da largura de faixa do
amplificador de entrada do sinal.
Para reduzir o ruído interno, deve-se selecionar um amplificador com uma largura
de faixa aproximada à largura de faixa do sinal de entrada.
Ruídos externos: Ruídos externos surgem de muitas fontes. Por exemplo, muitas
experiências de aquisição de dados estão sujeitas a ruídos de 60 Hz gerados pela rede
elétrica. Este tipo de ruído é chamado de pick-up or hum (zumbido), e aparece como um
sinal de interferência senoidal no circuito de medida. Outra fonte de interferência comum é
iluminação fluorescente. Estas luzes geram um arco com freqüência duas vezes maior que
a freqüência da linha (120 Hz). O ruído é acrescentado ao circuito de aquisição por estas
fontes externas devido à proximidade da atividade elétrica no ambiente de medição.
43
Muitos destes ruído são comuns a ambos os canais, tanto elétrico como de dados.
Para removê-los deve-se:
- Configurar o canal de entrada do sinal no modo diferencial;
- Usar fios com isolação coaxial;
- Manter os fios de sinal o mais curto quanto possível;
- Manter os fios de sinal tão longe quanto possível de atividade elétrica
ambiental.
Filtragem: Para muitas aplicações de aquisição de dados, utiliza-se um filtro passa-
baixas. A freqüência de corte do filtro deve ser compatível com as freqüências de interesse
no sinal e com a taxa de amostragem do conversor A/D.
Um filtro passa-baixas que é usado para impedir que as freqüências mais altas
introduzam distorções no sinal digitalizado é o filtro de “antialiasing”. A frequência de
corte acontece na freqüência de Nyquist.
44
����������������� ������������
A quase totalidade dos fenômenos físicos de natureza periódica tem sua origem em
ondas (sonoras, elétricas, hidráulicas e mecânicas) que apresentam formas bem definidas.
Em meados do século XVIII, Euler, Bernoulli e Lagrange já discutiam a
representação de sinais periódicos através de séries trigonométricas.
Fourier (1768-1830) desenvolveu em seu estudo sobre a condução de calor pelos
corpos a formulação de que um fenômeno de natureza periódica pode ser decomposto em
uma série de funções senoidais, com amplitudes variáveis e freqüências múltiplas da
freqüência fundamental, com fases coincidentes ou inversas. O estudo sobre a Teoria
Analítica do Calor foi publicado em 1822.
Os microcomputadores encontraram aplicação imediata para as séries de Fourier
dada a grande quantidade de operações necessárias para ser obtida uma confiabilidade
razoável na análise de um evento de natureza periódica.
O ouvido humano responde à intensidade das freqüências individuais presentes no
som, por este motivo é preciso trabalhar com informações sobre este sinal de som no
domínio da freqüência.
Neste capítulo será apresentada uma avaliação da base matemática para converter
qualquer função periódica nas suas componentes de freqüência, a Transformada de
Fourier.
Posteriormente será explanada a FFT (Transformada Rápida de Fourier) que é um
algoritmo que otimiza o cálculo da Transformada Discreta de Fourier- DFT.
��� ��������������������
�
Os sons naturais são compostos de múltiplas componentes de freqüências. Para
iniciar a análise em freqüência de um determinado som, deve-se supor que apenas uma
curta seção deste som é utilizada. Nesta análise, pode-se ignorar o restante do sinal do som.
Supondo também que a seção curta do som a ser analisada é periódica (repete-se
eternamente), pode-se então aplicar os princípios matemáticos que foram desenvolvidos
por Fourier, Bernoulli, e Eüler [19].
45
Para uma função periódica (forma de onda) dada por x(t), na qual o período é dado
por To, então:
1. x(t) pode ser representado por um somatório de ondas senoidais.
2. Na forma de onda senoidal, a frequência fundamental é:
fo= 1 / To [5.1]
3. O somatório pode ser escrito como:
( ) ( )( )�∞
=
++=1
000 2.2cos
2)(
n
nn ntfsinbntfaa
tx ππ [5.2]
(E. Oran Brigham, pg 74 [20])
4. 0
0
0 22
fT
ππ
ω == é conhecido como a primeira harmônica ou freqüência
angular fundamental.
( ) ( )( )�∞
=
++=1
000 cos
2)(
nnn
ntsinbntaa
tx ωω [5.3]
para um conjunto de valores de an e bn .
5. O somatório é chamado de “Série de Fourier” e os valores de an e bn são
chamados de “coeficiente da série”.
6. Os valores de an e bn podem ser encontrados por:
( )�−
=2
T
2
cos)(2
T
ndtnttx
Ta ω e ( )�=
2
T
2
T-
)(2
dtntsintxT
bn
ω . [5.4]
Estes resultados podem ser aplicados a funções discretas (funções que só estão
definidas em pontos específicos), como também a funções contínuas. Se tivermos uma
taxa de amostragem “Fs” e uma série de “N” amostras por período, então:
46
1. A menor freqüência presente é N
Ff s=0 e 00 2 fπω = [5.5]
2. A série com N amostras por período, pode ser representada por:
�∞
=
��
���
���
���
�+��
���
�+=
10 22cos)(
kkks
N
nksinb
N
nkaanTx ππ [5.6]
3. a0 corresponde ao valor da componente contínua.
4. A série de Fourier pode ser reescrita como:
( )( )�∞
=
++=1
00 cos)(k
Kktkaatx θω [5.7]
onde,
kj
kKeAX
θ= = KK
jba − [5.8]
�−
−=
2
T
2
).(2
T
tojk
Kdtetx
TX
ϖ [5.9]
�−
==2
T
2
)(1
T
oodttx
TAX [5.10]
5. o coeficiente Xk pode ser calculado numericamente através da seguinte
aproximação:
�=
−≈N
msK
N
mkjmTx
NX
1
]2exp[).(2
π [5.11]
�=
≈N
ms
mTxN
X1
0 )(1
onde Ts = T/N [5.12]
47
������������������������������������
A integral de Fourier é definida pela expressão:
( ) �+∞
∞−
Π−= dtetxfX ftj 2).( [5.13]
Se a integral definida na equação 5.13 existe em todo f, X(f) pode ser definida
como a transformada de Fourier do sinal no tempo x(t).
�����������������������������������
A equação 5.14 mostra a transformada Discreta de Fourier, para N amostras de um
sinal x(k).
�−
=
Π−=1
0
/2).(1
][N
k
NnkjekxN
nx n= 0, 1, 2 ... N-1 [5.14]
Vale salientar que tanto para transformada contínua quanto para a discreta existem
as transformadas inversas que retornam o sinal do domínio da freqüência para o domínio
do tempo.
�
�
�������������������� ������������������
A Transformada Discreta de Fourier apresentada pela equação 5.14, leva ao cálculo
N2 operações de multiplicação para se obter o espectro de frequência de um sinal.
Com o algoritmo da FFT (Transformada Rápida de Fourier), desenvolvido na
seção a seguir, o número de multiplicações necessárias cai para N.log2.N. Este fato pode
ser visualizado na figura 5.3.
48
��������������� ���!"#$$��%&'(�
Se fizermos na equação 5.14, n
i
n eW
π2−
= , [5.15]
então: �−
=
−
=
1
0
2N
n
N
kni
nk exy
π
torna-se �−
=
=
1
0
N
n
knNnk Wxy [5.16]
Se a série é dividida em elementos pares e ímpares temos:
��−
=
++
−
=
+=
12
0
)12(12
12
0
22
N
n
knNn
N
n
nkNnk WxWxy [5.17]
��−
=
+
−
=
+=
12
0
212
12
0
22
N
n
nkNn
kN
N
n
nkNnk WxWWxy [5.18]
devido a nkN
nkN WW
2
2 = , isto permite escrevermos
��−
=
+
−
=
+=
12
02
12
12
02
2
N
n
nkNn
kN
N
n
nkNnk WxWWxy [5.19]
��−
=
+
−
=
+=
12
02
12
12
02
2
N
n
nkNn
kN
N
n
nkNnk WxWWxy [5.20]
se fizermos: x1(m)= AMOSTRAS PARES = x(2n) e
x2(m)= AMOSTRAS IMPARES = x(2n+1)
��−
=
−
=
+=
12
02
2
12
02
1 )()(
N
n
nkN
kN
N
n
nkNk WnxWWnxy [5.21]
49
Assim, se existir um número par de amostras, o problema computacional de yk pode
ser reduzido pela metade. Então fazendo 2
Nk
y+
da forma,
( ) ( )��
−
=
++
−
=
+
++=
12
0
2
22
2
12
0
2
21
2
)()(
N
n
Nkn
N
Nk
N
N
n
Nkn
NNk
WnxWWnxy [5.22]
��−
=
−
=+
−=
12
02
2
12
02
1
2
)()(
N
n
nkN
kN
N
n
nkNN
kWnxWWnxy [5.23]
devido a ( ) nk
N
Nkn
NWW
2
2
2=
+ e 12 −=
N
NW [prova a seguir]
12 −=N
NW ( ) nk
N
Nkn
NWW
2
2
2=
+
22
2
N
N
iN
N eW��
�
�
��
�
�=
− π
( )πiN
N eW −=2
12 −=N
NW
( ) 2
22
2
2
nN
N
nkN
Nkn
NWWW =
+
( ) 42
22
2
2
nN
N
nkN
Nkn
NWWW =
+
( ) nnkN
Nkn
NWW 2
2
2
21−=
+ porque 12 −=
N
NW
( ) nkN
Nkn
NWW
2
2
2=
+
Com estes resultados
��−
=
−
=
+=
12
02
2
12
02
1 )()(
N
n
nkN
kN
N
n
nkNk WnxWWnxy [5.24]
e ��−
=
−
=+
−=
12
02
2
12
02
1
2
)()(
N
n
nkN
kN
N
n
nkNN
kWnxWWnxy , [5.25]
50
a Operação Butterfly é construída conforme a figura 5.1
)()()( 21 kXWkXkX kN+= e ( ) )()(2 21 kXWkXNkX k
N−=+ [5.26,27]
Figura 5.1: A Operação “Butterfly ”
A operação “butterfly” permite que a computação da DFT seja dividida ao meio, ou
seja, se existem 2n amostras, a computação da DFT pode ser repetida exigindo somente
metade do cálculo. Para uma DFT de 2 pontos (caso básico) temos:
1010
200 xxxWxy +=+= e 1010
201 xxxWxy −=−= [5.28]
Assim, se existem 2n amostras, a DFT pode ser computada através do uso de uma
série de estágios da operação “Butterfly” os quais se repetem conforme o número de bits
utilizado. A figura 5.2 mostra este processo:
Figura 5.2: Uso da Operação “Butterfly” para Computar uma FFT de 8-pontos
51
Estas séries de operações podem ser mais facilmente implementadas se os valores
de entradas forem seqüenciados corretamente. A análise da representação binária dos
valores de entrada revelam um padrão subjacente, ou seja, os índices correspondem à
representação binária invertida do número da seqüência, como mostrado na tabela 5.1.
Seqüência da
Operação “Butterfly”
Endereço Binário
Bit Reverso Elementos correspondente a
seqüência Original
x0
x4
x2
x6
x1
x5
x3
x7
000 100 010 110 001 101 011 111
000 001 010 011 100 101 110 111
x0
x1
x2
x3
x4
x5
x6
x7
Tabela 5.1: Sequência e Re-ordenação dos bits de ordem reversa
Devido ao fato das representações binárias se repetirem, o número de operações de
multiplicações necessárias para se obter o espectro de frequência de um sinal diminui
consideravelmente.
Figura 5.3: Comparação do número de Multiplicações requeridas pelo cálculo direto e pela FFT
52
A figura 5.3 mostra a eficiência computacional da FFT em comparação com o
método normal (transformada de Fourier simples). Pode-se ver claramente que quanto
maior for o número de pontos de uma amostra, o número de multiplicações na forma direta
cresce na forma exponencial, enquanto que a FFT possui poucas multiplicações.
53
����������� ����
Um sistema completo de reconhecimento de voz, em seu mais elementar nível,
compreende uma coleção de algoritmos de uma larga variedade de disciplinas, incluindo
reconhecimento de padrões estatísticos, teoria da comunicação, processamento de sinais,
matemática combinacional, lingüística, entre outras.
Embora cada uma destas áreas seja abordada de forma diferente pelos programas
de reconhecimento de voz existentes, o grande denominador comum de todos os sistemas
de reconhecimento da fala é o processamento de sinal “font-end”, ou seja, o
processamento inicial da forma de onda da fala em parâmetros de representação.
Existem três métodos dominantes na análise espectral de um sinal:
- Modelo de Análise de Banco de Filtros.
- Código Linear de Predição (LPC).
- FFT (Transformada Rápida de Fourier)
����������������������������� ���
Tanto para a técnica de reconhecimento de voz baseada no reconhecimento de
padrões ou em modelos acústico-fonéticos, mostrados na figura 6.1 (a) e (b)
respectivamente, a fase inicial do processo é comum nos dois métodos, ou seja, o
processamento de sinais inicial é igual nos dois métodos de reconhecimento de voz, apesar
dos passos seguintes serem diferentes.
Os métodos de processamento inicial de sinais mais usados são o Banco de Filtros,
Código Linear de Predição – LPC e a Transformada Discreta de Fourier (DFT)
implementada através da FFT.
A estrutura do sistema de um Banco de filtros é mostrada na figura 6.2.
O sinal da fala, s(n), é passado através de um banco de Q filtros passa-faixa, os
quais cobrem breves espaços de freqüência de interesse no sinal. (sinais 100-3000Hz para
sinais de telefone de qualidade, 100-8000Hz para sinais de banda larga).
54
Figura 6.1: (a) Aproximação por Reconhecimento de Padrões (b) Aproximação acústico-fonética.
Os filtros individuais podem e geralmente sobrepõem-se na freqüência como
mostrado na figura 6.2.
Figura 6.2: Modelo de análise de um Banco de Filtros.
55
A saída do ith filtro passa-faixa, Xn (ejωωωωi) é a representação espectral de s(n) (onde
ωi é a freqüência normalizada 2.ππππ.fi/Fs, sendo Fs a freqüência de amostragem). A
freqüência central do filtro é ωωωωi. Pode-se ver que cada filtro processa o sinal
independentemente e produz uma representação espectral individual Xn.
A análise de sinal feita através do sistema LPC (Linear Predictive Coding) é
mostrada na figura 6.3. A representação espectral resultante Xn (ejωωωωi) é da forma σσσσ/A.
(ejωωωωi), onde A.(ejωωωωi) é a pth (p-ésima) ordem polinomial com a transformada Z dada por:
A(z) = 1 + a1.z-1
+ a2.z-2
+ a3.z-3
+ .... + ap.z-p [6.1]
A ordem p, é chamada ordem do analisador LPC.
Figura 6.3: Modelo de análise LPC.
Embora existam processadores alternativos para processar o sinal de entrada em
sistema de reconhecimento de voz, os modelos de banco de filtros, LPC e a FFT, tem
proporcionado mais alto desempenho em sistemas práticos. Neste trabalho será dada
ênfase ao sistema de processamento de banco de filtros, o mais utilizado nos sistemas de
reconhecimento de voz, devido à sua simplicidade e menor tempo de processamento. Vale
salientar que a FFT foi vista no capitulo 5.
�
��������������������������� ��
O diagrama de blocos da estrutura canônica do banco de filtros é mostrado na
figura 6.4. O sinal de fala amostrado, s(n), é passado através de um banco de Q filtros, em
que:
si(n) = s(n) * hi(n), 1 ≤≤≤≤ i ≤≤≤≤ Q [6.2]
56
onde a resposta ao impulso do ith filtro passa-faixa é hi(m) com a duração de Mi amostras;
então a convolução é usada para representar a operação de filtragem.
Figura 6.4: Modelo do analisador de um Banco de Filtros.
O objetivo do banco de filtros é dar a medida da energia do sinal de voz e também a
faixa de freqüências de cada sinal (passa faixa).
������������������������ ������������� ��������������������
O tipo mais comum de banco de filtros usado para reconhecimento de fala é o
banco de filtros uniforme, para qual a freqüência central, fi, do filtro passa faixa é definida
como:
iN
Ff s
i ⋅= 1 ≤≤≤≤ i ≤≤≤≤ Q , [6.4]
onde Fs é a taxa de amostragem do sinal de fala, e N é o número de filtros uniformemente
espaçados requeridos para medir toda a faixa de freqüência da fala. O número de filtros
usado no banco de filtro, Q, satisfaz a relação,
Q ≤≤≤≤ N / 2 [6.5]
57
O valor de Q é igual a (N / 2) quando a faixa de freqüência inteira do sinal de fala é
usada na análise. A largura de faixa do filtro (bi), do iésimo filtro, geralmente satisfaz à
propriedade,
bi ≥≥≥≥ Fs / N [6.6]
com a igualdade significando que não há nenhuma freqüência que se sobreponha entre
canais de filtro adjacentes, e com a desigualdade significando que aqueles canais de filtro
adjacentes se sobrepõem. (Se bi < Fs/N então certas porções do espectro de fala estariam
perdidas na análise e o espectro de fala resultante não seria considerado muito
significante).
A figura 6.5(a) mostra um conjunto Q de filtros ideais, não-sobrepostos, que
cobrem uma faixa de frequência de Fs/N(½) até (Fs/N)(Q+ ½ ).
Já a figura 6.5(b) mostra um conjunto real dos filtros cobrindo a mesma faixa de
freqüências.
Figura 6.5: (a) ideal (b) real. Respostas de um banco de filtros de Q – canais com cobertura de uma faixa de frequência de Fs/N(½) até (Fs/N)(Q+ ½ ).
Uma alternativa para os bancos de filtro uniformes, são os bancos de filtros não-
uniformes. Um critério comumente usado para espaçar os filtros não uniformes é a escala
de freqüência logarítmica. (Uma escala de freqüência logarítmica é freqüentemente
justificada de um ponto de vista da percepção audível do ser humano). Assim, para um
conjunto de Q filtros passa faixa com freqüências centrais, (fi), e largura de faixa (bi), 1 ≤≤≤≤
i ≤≤≤≤ Q , tem-se:
58
b1 = C (primeira largura de banda) [6.7]
bi = α .bi –1, 2 ≤≤≤≤ i ≤≤≤≤ Q [6.8]
2
)( 11
11
bbbff i
i
j
ji
−++= �
−
=
[6.9]
onde C e fi são, a largura de faixa e a freqüência central do primeiro filtro e αααα é o fator de
crescimento logarítmico.
Os valores mais comumente usados de αααα são: αααα=2, que dá um espaçamento de
faixa de uma oitava nos filtros adjacentes e αααα= ¼ que dá um espaçamento de 1/3 de oitava
na faixa do filtro.
Como exemplo, pode se supor a construção de um banco de filtros de quatro
faixas, com espaçamento de uma oitava, não superpostos, cobrindo uma faixa de
freqüência de 200 a 3200 Hz (com uma taxa amostragem de 6.67 kHz).
A figura 6.6 mostra os filtros ideais para este banco de filtros. São usados valores
para fi e C de 300 Hz e 200 Hz, resultando nas seguintes especificações para este banco de
filtros:
Filtro 1: f1 = 300 Hz b1 = 200 Hz
Filtro 2: f2 = 600 Hz b2 = 400 Hz
Filtro 3: f3 = 1200 Hz b3 = 800 Hz
Filtro 4: f4 = 2400 Hz b4 = 1600 Hz
Figura 6.6: Especificação para um Banco de Filtro ideal de 4 canais de uma oitava
59
����������������������������������� ��
Um banco de filtro pode ser implementado de diversos modos, dependendo do
método usado para projetar os filtros individuais. O projeto de filtros digitais divide-se em
duas classes:
- Resposta ao Impulso Infinita (IIR)
- Resposta ao Impulso Finita (FIR)
Os filtros IIR (também chamados na literatura de filtros recursivos), são os mais
diretos, e geralmente são de implementação mais eficiente, seja para realizar cada filtro
passa faixa individual como uma cascata ou uma estrutura paralela.
Para filtros FIR existem vários métodos possíveis de implementar os filtros passa
faixa em um banco de filtros. A mais simples implementação é a estrutura na forma direta.
Neste caso, se a resposta ao impulso para o iésimo canal é hi(n), onde 0 ≤≤≤≤ n ≤≤≤≤ L-1, então a
saída do iésimo canal xi(n), pode ser expressa como uma convolução discreta do sinal de
entrada s(n), com a resposta ao impulso, hi(n), isto é:
xi(n) = s(n) * hi(n) [6.10]
���� ������ ������ ��� �� �� ���� ��� ������� ��� �� ��� ��� �������� �����
���������������������
A primeira consideração para qualquer banco de filtro é o tipo de filtro digital
usado. As escolhas são IIR (recursivo) e FIR (não recursivo). O projeto de filtros IIR tem
a vantagem de ser implementável em estruturas simples e eficientes. A grande
desvantagem dos filtros IIR é que a resposta em fase é não linear. Além disso, este tipo de
filtro tem a possibilidade de ser tornar instável.
Os filtros FIR alcançam a fase linear sem comprometer a habilidade de aproximar-
se das características de magnitude ideais; porém, eles normalmente são de implementação
computacional muito cara.
Para aplicações de reconhecimento de voz, uma estrutura de FFT pode ser
aplicada freqüentemente para aliviar consideravelmente a ineficiência computacional de
60
bancos de filtro FIR; conseqüentemente, estruturas de banco de filtro digitais mais
práticas usam filtros FIR (normalmente em uma realização com FFT) [17].
A próxima consideração é o número de filtros a ser usado no banco de filtros. Para
bancos de filtros uniformes, o número de filtros, Q, não pode ser muito pequeno ou então a
habilidade do banco de filtros em filtrar o sinal da fala é grandemente prejudicada.
Assim, valores de Q menores que 8 geralmente são evitados. Igualmente, o valor de
Q não pode ser muito grande (a menos que haja uma considerável sobreposição de filtros),
porque as larguras de faixa dos filtros seriam muito estreitas.
Assim, sistemas práticos tendem a ter valores de Q < 32.
Embora bancos de filtros uniformemente espaçados sejam extensamente usados
para reconhecimento de voz, muitos sistemas práticos usam filtros de espaçamento não
uniformes, em um esforço de reduzir computação global e caracterizar o espectro de fala
de uma maneira mais consistente com a percepção humana.
Vale salientar que o banco de filtros é uma ferramenta importante para o
reconhecimento de voz quando o objetivo é encontrar frequências especificas de um sinal
de voz. Como exemplo pode-se citar a análise das formantes de frequência requeridas na
aproximação Acústico-fonética (Capitulo 2). Neste estudo, a aproximação utilizada é a de
Reconhecimento de Padrões onde a análise espectral do sinal é feita como um todo, deste
modo utilizamos apenas a FFT para obter o espectro de frequência do sinal.
61
�����������
Como será demonstrado no capitulo 10, a FFT é uma ferramenta eficiente para a
obtenção do espectro de freqüência de um sinal. No entanto, devido à característica
interdisciplinar do reconhecimento de voz, muitas são as variáveis que influenciam no
resultado final da FFT, isto é, as características do espectro de um sinal de voz mudam,
mesmo no caso deste sinal ser pronunciado pela mesma pessoa. Portanto, precisa-se de
uma ferramenta auxiliar para dar maior confiabilidade à resposta obtida pelo sistema. As
“Wavelets” cumprem este papel de auxiliar a FFT na definição do reconhecimento de voz.
A Transformada “Wavelet”, é uma técnica relativamente pouco difundida, em
comparação com a FFT, daí a necessidade de comparar as duas ferramentas, e assim
demonstrar sua utilidade.
Não é objetivo deste trabalho desenvolver um aprofundamento teórico referente às
“Wavelets”, mas somente demonstrar a sua utilidade como uma ferramenta auxiliar à FFT
no reconhecimento de voz. Pretende-se aqui mostrar uma pequena introdução conceitual e
exemplos práticos do uso das “Wavelets” no reconhecimento de sinais.
A Transformada “Wavelet”, em alguns casos, propicia a obtenção de informações
não conseguidas com o uso da FFT. Dentre os tipos de aplicações que utilizam as
“Wavelets”, estão o reconhecimento de sinais e a compressão de imagens utilizadas pelo
FBI americano no reconhecimento de impressões digitais.
A Transformada Discreta de Fourier foi concebida no século XIX pelo matemático
francês Jean Baptiste Fourier. Como visto no capitulo 5, esta técnica permite que, a partir
de um sinal no domínio do tempo, obtenha-se o sinal correspondente no domínio da
freqüência.
�� ������������������������
A DFT (Transformada Discreta de Fourier) informa exatamente quais são as
freqüências presentes num sinal. Se for necessário analisar um sinal estacionário, ou seja,
um sinal com espectro invariante, a freqüência apontada como existente pela DFT está
presente em todo o sinal. Mas, se for necessário trabalhar com um sinal não estacionário
62
(como sinal de voz), muito embora a DFT aponte as frequências presentes, ela não diz
nada sobre a localização dessas frequências, ou seja, em que instante de tempo
determinada frequência aparece. Quando essa informação é importante, deve-se lançar mão
de outra técnica. Uma delas é usar a decomposição baseada em “Wavelets”.
A tradução literal de “Wavelet”, é ondaleta, ou, pequena onda. As principais
aplicações práticas para o uso de Wavelets são:
- Detecção de características em sinais (imagens, sons e outros sinais).
- Tremores Sísmicos
- Imagens Médicas
- Compressão de imagens e sons.
- Filtragem do ruído em imagens e sons.
- Identificação de características em sinais.
A Wavelet é uma forma de onda de duração limitada que tem um valor médio igual
a zero. A figura 7.1 mostra uma comparação entre um sinal senoidal (base da análise de
Fourier) sem limite de duração (estendida de menos a mais infinito) e um sinal Wavelet
com duração limitada, assimétrico e irregular.
Figura 7.1: Onda Senoidal e Wavelet tipo db10
Matematicamente, o processo de análise de Fourier é representado pela
Transformada de Fourier (equação 7.1), que é a soma de todo o sinal f(t) multiplicado pela
exponencial complexa (que pode ser quebrado em componentes senoidais de parte real e
imaginária).
( ) ( ) dtetfF tjωω −+∞
∞−�= . [7.1]
63
A figura 7.2 mostra como a transformada de Fourier decompõe um sinal qualquer
em suas componentes senoidais.
Figura 7.2: Decomposição de um sinal qualquer em sinais senoidais
(Transformada de Fourier)
Similarmente a transformada Wavelet é definida como a soma de todo o sinal no
domínio do tempo, multiplicado pela função wavelet.
�+∞
∞−= dttposiçãoescalatfposiçãoescalaC ),,().(),( ψ [7.2]
Figura 7.3: Decomposição de um sinal qualquer em sinais de diferentes escalas e posições (Transformada Wavelet)
A equação 7.2 resulta em muitos coeficientes “C”, os quais são função da escala e
da posição sinal.
A figura 7.3 mostra a decomposição do sinal utilizando-se a Transformada
Wavelet.
A Transformada Discreta Wavelet decompõe um sinal em outros dois sinais,
fazendo uso de filtros passa-baixa (chamados scaling signals) e filtros passa-alta
(chamados wavelets signals).
64
Para um sinal discreto F de n pontos, existem m ( m ≤≤≤≤ n/2 ) scaling signals
denominados por V1, V2 ...Vm, e existem também m wavelets signals denominados por W1,
W2 ... Wm.
Cada par de vetores formados pelo conjunto (V1, W1), (V2, W2), ..., (Vm, Wm) é
ortogonal, ou seja, possuí produto escalar igual a 0.
A forma como se define essa base de vetores é que da origem a diferentes classes
de Transformadas Wavelets (tipo da Wavelet, ex: db10), que se prestam melhor a uma ou
outra determinada situação. Entretanto, independente dessa definição, os scaling signals
serão sempre obtidos dos filtros passa-baixa e os wavelets signals serão obtidos dos filtros
passa-alta.
A figura 7.4 mostra o nível 1 da decomposição de um sinal pelas Wavelets. O sinal
é decomposto por dois filtros, gerando os scaling signals (A -filtros passa-baixa) e os
wavelets signals (D - filtros passa-alta).
Figura 7.4: Nível 1 de uma decomposição de um sinal pelas Wavelets
Quando m = ( n/2 ), o vetor de n pontos formado pelos coeficientes (a1, a2 ...am),
seguido de (d1, d2 ...dm ) é chamado de Transformada Wavelet nível 1 do sinal original.
Este processo de decomposição é conhecido como Análise de Multi Resolução
(MRA - Multiresolution Analysis) e é o coração da análise de sinais com Wavelets.
Para melhor exemplificar o processo de decomposição das Wavelets a figura 7.5
mostra um sinal com 1000 pontos e sua decomposição.
65
Figura 7.5: Exemplificação da decomposição de um sinal
pela Transformada Wavelet Nível 1
�������������������������������������������������������������
Quando se obtêm a Transformada Wavelet de um sinal discreto, realiza-se a
Transformada de nível 1. Se for feito o cálculo da Transformada Wavelet da primeira
metade desse sinal já transformado, obter-se-á no segundo nível de análise, e assim por
diante. Este processo, que está exibido na figura 7.6, pode se repetir por log2(n), onde n é o
número de pontos do sinal original.
Figura 7.6: Decomposição para Múltiplos nível das Wavelets
A Transformação de nível 1 do sinal S é composta pelos sub-sinais cA1 e cD1, a
Transformação nível 2 é composta pelos sub-sinais cA2 , cD2 e cD1, e a Transformação
66
nível 3, pelos sub-sinais cA3 , cD3 , cD2 e cD1..
Nos capítulos referentes a descrição do sistema desenvolvido neste estudo, será
mostrada a utilização da Wavelet no cálculo da correlação dos sinais de voz, como uma
ferramenta auxiliar ao cálculo da correlação da FFT.
67
��������������������� ��������������
Para desenvolver um sistema completo de Reconhecimento de Voz é necessário
primeiramente escolher um software de desenvolvimento (linguagem de alto nível). Dentre
as principais linguagens de desenvolvimento estão o C/C++, Visual Basic e o Delphi.
Todas estas linguagens de programação possuem um ambiente de desenvolvimento
de alto nível e com grande capacidade de processamento de inúmeros algoritmos básicos,
como o seno e o co-seno etc. No entanto, estas linguagens não possuem nenhuma
ferramenta específica para o cálculo de algoritmos com grande complexidade, tal como a
FFT (se precisarmos efetuar o cálculo da transformada de rápida de Fourier (FFT) de um
sinal temos que desenvolver todo o algoritmo em C/C++, por exemplo).
Como citado nos capítulos anteriores, um sistema completo de reconhecimento de
voz possui a característica da interdisciplinaridade, ou seja, uma vasta gama de
conhecimentos é empregada no desenvolvimento do sistema, desde a aquisição do sinal de
voz até o reconhecimento de um padrão. Além da quantidade, existe também a
complexidade dos cálculos envolvidos no processamento. Estes fatores influenciam o
desempenho e a precisão do reconhecimento de voz e exigem um software de
desenvolvimento que possua as qualidades de rapidez e precisão nas diversas tarefas
inerentes ao sistema.
Devido a este fato, desenvolver um sistema complexo como o de Reconhecimento
de Voz torna-se uma tarefa árdua em linguagens como o C/C++, pois cada algoritmo tem
que ser programado individualmente, aumentando a possibilidade de pequenos erros de
programação (bugs) que podem levar a resultados errados e comprometer a qualidade do
sistema.
Existem vários softwares de desenvolvimento com ferramentas pré-programadas. O
que mais se destaca na área de engenharia é o MATLAB.
Desde a sua primeira versão (1984), o MATLAB é tido como produto líder na
área de computação numérica e científica. Mais que um software de desenvolvimento de
programas, o MATLAB é um ambiente integrado de modelamento de sistemas e
algoritmos, ideal para implementação de projetos complexos, e por esta razão vem sendo
adotado como ferramenta de desenvolvimento padrão pelas principais universidades e
empresas no Brasil e no mundo.
68
O MATLAB é o núcleo de um ambiente de computação numérica baseado em
matrizes que integram:
- funções de tratamento numérico de alto desempenho;
- sofisticados recursos de geração de gráficos para visualização de dados;
- poderosa linguagem de programação de alto nível.
������������������������������������
A tela de desenvolvimento do MATLAB é basicamente constituída por duas
partes principais:
- [Command Window]: Janela de Comando
- [Workspace]: área de memória de trabalho do MATLAB.
Figura 8.1: Janela de Comando do MATLAB
A janela de comando vista na figura 8.1 é o espaço onde são digitados os dados e
instruções para o MATLAB e exibidos os resultados.
69
O sinal de prompt “>>” indica estado de espera de entrada de dados ou
instruções.�
� A área de memória do MATLAB (Workspace) é o local onde ficam armazenadas
as variáveis criadas na janela de comando. A figura 8.2 mostra a área de memória
(Workspace).
Figura 8.2: Área de Memória do MATLAB
O MATLAB possui versões para diferentes ambientes operacionais. O sistema de
reconhecimento de voz aqui desenvolvido chama-se “Parlato” (capítulo 9) e foi
desenvolvido na versão MATLAB 6 (R12) para ambiente Windows 98.
A figura 8.3 mostra a tela de desenvolvimento completa do MATLAB, organizada
da seguinte forma:
A. Janela de Comando [Command Window]: área de trabalho na qual as instruções
são digitadas.
B. Janela de Informações [Launch Pad]: área na qual são exibidas informações,
textos explicativos e exemplos de utilização dos produtos instalados.
C. Janela de Memória [Workspace]: área na qual são exibidas as variáveis
definidas na área de trabalho do MATLAB.
D. Janela de Histórico [Command History]: área na qual ficam armazenadas todas
as instruções executadas no MATLAB.
Basicamente existem duas formas de desenvolver um programa no MATLAB.
Uma delas é desenvolver o programa direto na Janela de Comando, o que possibilita o teste
70
do algoritmo instantaneamente. A outra opção é criar um arquivo de programa executável
dentro do MATLAB que é chamado de arquivo “m.file” devido a sua extensão ser “.m”.
Os “m.files” são programas desenvolvidos dentro do MATLAB e somente são
reconhecidos e executados no ambiente do MATLAB.
Figura 8.3: Tela completa do ambiente de Desenvolvimento do MATLAB
���������������������������������������
Chamadas de “Toolbox”, as caixas de ferramentas do MATLAB são o que o
diferenciam dos outros softwares de desenvolvimento como o C/C++.
O MATLAB possui inúmeras caixas de ferramentas com algoritmos pré-
programados para cada ramo específico de conhecimento. Se o intuito for por exemplo,
utilizar algoritmos para o processamento de imagens no MATLAB, basta usar a caixa de
ferramentas “Image Processing Toolbox” que contém inúmeros algoritmos prontos para
o processamento de imagens.
O MATLAB não possui uma caixa de ferramentas específica para o
reconhecimento de voz.
71
As principais caixas de ferramentas do MATLAB podem ser encontradas na
Janela “Launch Pad”, a qual fornece um rápido acesso ao menu de “ajuda” (help) de cada
ferramenta. A figura 8.4 mostra a Janela “Launch Pad”.
Figura 8.4: Janela “Launch Pad” do MATLAB
No desenvolvimento do sistema “Parlato” (Capítulo 9) foram utilizados vários
algoritmos, os quais podem ser encontrados nas caixas de ferramentas descritas abaixo:
- Data Aquisition Toolbox: Caixa de ferramentas com algoritmos e funções para
aquisição de dados.
- Filter Design Toolbox: Caixa de ferramentas com funções para elaboração e
filtros e banco de filtros.
- Signal Processing Toolbox: Caixa de ferramentas com funções para o
processamento de sinais, tais como a FFT.
- Statistics Toolbox: Caixa de ferramentas com funções estatísticas tais como a
correlação.
- Wavelet Toolbox: Caixa de ferramentas com funções e algoritmos de análise
espectral de sinais através das “wavelets” (método similar a FFT).
- Database Toolbox: Caixa de ferramentas com funções e procedimentos para a
criação e manipulação de arquivos de banco de dados.
Além das caixas de ferramentas específicas, muitas funções matriciais e numéricas
foram utilizadas na confecção do sistema de reconhecimento de voz “Parlato” (capítulo
72
9). A utilização de todas estas funções e ferramentas de cálculo, justifica o uso do
MATLAB como software de desenvolvimento de um sistema complexo como de
reconhecimento de voz, pois neste caso, a atenção do programador fica voltada ao sistema
e não a pormenores como o desenvolvimento de algoritmos para fazer a conexão com a
placa de som, por exemplo.
Finalmente vale salientar que o MATLAB não possui uma Caixa de Ferramentas
especifica para o reconhecimento de voz. Portanto desenvolver um sistema de
reconhecimento de voz no MATLAB torna-se uma tarefa tão árdua quanto em C/C++;
a diferença é que com o MATLAB , tem-se mais segurança na utilização de algoritmos
(algoritmos de cálculo avançado, como a FFT) que já foram amplamente testados e
aprovados. Deste modo elimina-se a possibilidade de erros na programação destes
algoritmos e conseqüentemente diminui-se a porcentagem de erros do sistema como um
todo. Portanto, o sistema “Parlato” de reconhecimento de voz (descrito no capítulo 9) é
um sistema desenvolvido neste trabalho utilizando o MATLAB como linguagem de
programação. O sistema “Parlato” é parte integrante desta dissertação.
73
���������������� �����������������������
O sistema de reconhecimento de voz “Parlato” foi desenvolvido na versão do
MATLAB 6 (R12) para ambiente Windows 98. O nome “Parlato” foi escolhido para
representar uma homenagem aos descendentes de italianos (dos quais faço parte) que
ajudaram a construir este país (Brasil). Parlato é uma palavra do idioma italiano e pode
ser traduzido como o verbo “falar” conjugado no pretérito perfeito, “falado”.
Muitas funções do MATLAB 6 foram utilizadas para desenvolver este sistema.
No decorrer deste capítulo serão apresentadas aquelas que possuem real importância no
desempenho do mesmo. Estas funções são convencionalmente apresentadas em quadros de
texto com letras no formato “Arial-10, itálico”. Os comentários são precedidos do caractere
“%” com letras no formato “Times New Roman-10”. Uma linha de comando do MATLAB é
iniciada sempre com símbolo “>>”.
O sistema Parlato é constituído por vários subprogramas que utilizam as funções
do MATLAB para executar tarefas específicas. Os subprogramas desenvolvidos são:
- Subprograma AQS: subprograma que executa a aquisição de dados de um sinal
de voz, adquirido através de um microfone e amostrado pela placa de som. Este
subprograma também faz a filtragem, calcula a FFT e a Densidade Espectral de Potência
do sinal amostrado.
- Subprograma AQS_Wavelet: calcula as “wavelets” do sinal amostrado.
- Subprograma Grava_Amostra: grava o sinal amostrado em um banco de dados.
- Subprograma AQR: subprograma que faz a aquisição do sinal a ser reconhecido
(amostragem de reconhecimento).
- Subprograma CCorr: calcula o coeficiente de correlação entre os sinais gravados
(banco de dados) e o sinal amostrado. Em seguida testa a possibilidade do sinal amostrado
ser igual ou parecido com alguma das amostras gravadas. Este subprograma também é
responsável pelo acionamento de um equipamento eletro-eletrônico.
- Subprograma Dens_Espec: calcula e mostra a densidade espectral de potência de
um sinal amostrado, antes e após a filtragem.
Todos este subprogramas são gerenciados pelo programa principal chamado
“Parlato”, o qual apresenta uma tela de interface com o usuário mostrada na figura 9.1.
74
A tela do sistema “Parlato” é subdividida em três janelas não móveis:
A. Janela de Comando
B. Janela Gráfica.
C. Janela de Verificação.
A janela de comando está situada no lado superior esquerdo e possuí vários
botões. O nome de cada botão descreve a sua função. A janela gráfica situada no lado
direito da tela é reservada para a visualização dos gráficos dos sinais amostrados, gravados
ou reconhecidos. No lado inferior esquerdo da tela está a janela de verificação, destinada
à visualização do sinal amostrado para conferência visual do usuário.
Figura 9.1: Tela do programa Parlato.
A figura 9.2 mostra a janela de comando do sistema Parlato. Esta janela possui os
seguintes botões de comando:
- [AQUISIÇÃO DO SINAL]: executa o subprograma AQS que é responsável pela
aquisição do sinal de voz, cálculo da FFT e a visualização do sinal.
75
- [ESPECTROGRAMA]: mostra na tela o espectrograma do sinal, ou seja,
mostra todas as freqüências existentes nos sinais original e filtrado.
- [WAVELET DO SINAL]: apresenta na tela os gráficos das wavelets do sinal.
- [OUVIR SOM]: através deste botão o usuário pode ouvir o som amostrado,
verificar se o sinal foi adquirido corretamente e se o mesmo serve para ser gravado como
padrão.
- [INICIA >>]: Este botão de comando é responsável pelo inicio do
reconhecimento de voz.
Figura 9.2: Janela de Comando do sistema Parlato
Pode-se ver ainda na janela de comando um quadro com o título CONTROLE
DAS AMOSTRAS. Esse quadro será mostrado posteriormente no item referente à
gravação de amostras.
No lado superior direito da janela de comando existe um espaço com o título
RESULTADOS. Esse espaço é reservado para a apresentação dos resultados obtidos no
reconhecimento voz.
76
A figura 9.3 mostra a Janela de Verificação. Nesta janela pode-se visualizar o
sinal amostrado, a FFT e a densidade espectral de potência deste sinal, bastando apenas
clicar no botão desejado. Existe ainda uma opção com marcador “���� Grade” que serve
para acionar ou desligar a impressão das linhas de grade no sinal.
A Janela de Verificação mostra sempre o último sinal adquirido pela função AQS.
Figura 9.3: Janela de Verificação do sinal amostrado do sistema “Parlato”
A Janela Gráfica será descrita no próximo item, referente à aquisição de um sinal
de som.
��� ���������������������������
�
A aquisição do sinal de voz, é a primeira etapa do sistema de reconhecimento de
voz. Para realizar a aquisição do sinal de voz precisa-se de um bom microfone, de uma
placa de som e do software adequado. Todos estes fatores devem ser considerados pois
influem diretamente na qualidade do som adquirido e conseqüentemente nos resultados
obtidos.
��������������� !��"!#$%"��&��#$�'�()��"!���*�
�
Um dos melhores modos para aumentar precisão do reconhecimento da fala é ter o
microfone certo. Diferentes tipos de microfones e suas características são apresentados
abaixo:
77
- Microfone embutido no computador ou no monitor: Microfones embutidos
em computadores ou nos monitores de um computador trabalham bem em funções de
comando e controle no reconhecimento de fala, mas não trabalham bem para o ditado,
porque ficam longe da boca do locutor e detectam muito barulho do ambiente.
- Microfone de teclado: Microfones localizados nos teclados não trabalham bem
para reconhecimento de fala porque também ficam longe do locutor e detectam muito
barulho do ambiente, além de não estarem direcionados ao locutor.
- Microfone “Clip-on”: São microfones colocados sobre a camisa (roupa) do
locutor. Apesar de estar localizado perto da boca do locutor este tipo de microfone não
tem um bom desempenho, pois não está direcionado ao locutor, adquirindo assim muito
barulho do ambiente.
- Microfone “Close-Talk”: Este tipo de microfone geralmente está associado a um
fone de ouvido. O fone de ouvido é colocado sobre a cabeça e o microfone é aproximado
bem perto da boca do locutor. Estes microfones são os melhores para o reconhecimento de
fala e ditado porque eles são unidirecionais, captando diretamente o som da fala e,
conseqüentemente, pouco barulho de fundo (ambiente). Infelizmente, o cabo deste tipo de
microfone às vezes é um pouco curto.
- Microfone de Mesa: Microfones de mesa normalmente descansam em um posto
de microfone. Para funcionar bem deve ser apontado para o locutor e ficar a
aproximadamente 15cm de sua boca. São muito sensíveis a ambientes barulhentos.
- Microfone de “Orelha”: São parecidos com o “Close-talk”, pois também
possuem fone de ouvido (apenas um). Possui uma haste em forma de um gancho, e esta
haste descansa sobre a orelha do locutor. Estes microfones trabalham bem para
reconhecimento de fala e ditado. Infelizmente, o cabo deste tipo de microfone também às
vezes é um pouco curto.
- Microfones Segurados na Mão: Apesar de detectar pouco barulho externo, os
microfones de mão possuem o inconveniente de serem segurados pelo locutor. Eles devem
ser segurados a aproximadamente 10 cm longe da boca do usuário. Manter esta distância
torna-se cansativo, o que dificulta o uso deste tipo de microfone.
Portanto, os microfones mais adequados ao reconhecimento de voz são os “Close-
Talk” e os de “Orelha”, pois permitem que o microfone fique o mais próximo da boca do
locutor. Estes microfones são unidirecionais e, conseqüentemente, captam pouco barulho
do ambiente.
78
O microfone está para o reconhecimento de voz como um termopar está para um
sistema de controle de temperatura, ou seja, a escolha do microfone correto é decisiva para
os próximos passos do sistema de reconhecimento de voz.
Para desenvolver o sistema Parlato foram testados vários microfones e finalmente
foi optado pelo uso do “Close-Talk”, pois o mesmo possui as qualidades necessárias para
um bom desempenho. O microfone utilizado foi da marca Clone , com fone de ouvido,
com as seguintes características:
Fone de Ouvido: - Impedância 32 Ohms
- Freqüência de resposta: 20 – 20.000 Hz
- Sensibilidade: 105 dB ± 4 dB
Microfone: - Omni-Direcional
- Freqüência de resposta: 20 – 16.000 Hz
����+����,%�%�"!���*�$-�,�.%"%��
�
� Como o sistema Parlato foi desenvolvido no MATLAB, a escolha da placa de
som adequada levou em conta a compatibilidade com este software. A caixa de
ferramentas “Data Aquisition Toolbox” do MATLAB possui ferramentas para aquisição
de som de placas compatíveis com a SoundBlaster.
Todo o sistema foi desenvolvido utilizando uma placa de som “Plug and Play” do
tipo DJ(ππππ) 4100 fabricado pela Tsunami com as seguintes características:
Placa de Som: - Entrada para Microfone 3,5mm
- Saída para fone de ouvido
- Saída paralela para caixas de som do computador
- 16 bits por canal
- Impedância de 32 Ohms.
- Drive (software de operação): C-Media CM8738
- Compatível com o sistema da SoundBlaster.
- Compatível com Windows 98, NT, ME e 2000.
79
O MATLAB provê todas as informações sobre a placa de som instalada no
computador através da função “daqhwinfo”. Ao executar esta função na janela de
comando do Matlab tem-se:
Das características retornadas na janela de comando vale salientar:
- Resolução da placa de som = 16 Bits
- Faixa de tensão do sinal de entrada = [-1 a 1] Volt
- Máxima taxa de amostragem = 44100 Hz
- Mínima taxa de amostragem = 8000 Hz
- Canais disponíveis = 2 (stéreo)
����/����#$�'�()��"����*� ���%-,%0
Para adquirir uma amostra de som no Matlab deve-se seguir os passos:
a) Declarar uma variável que esteja ligada ao adaptador da placa de som. Isto é
feito através da função “analoginput”:
Ai = analoginput ('winsound'); Ai= variável
>> daqhwinfo >> ans = % respostas fornecidas pela função daqhwinfo
% (propriedades da aquisição de som) AdaptorName: 'winsound'
Bits: 16
DeviceName: 'C-Media Audio Record (D000)'
InputRanges: [-1 1]
MaxSampleRate: 44100
MinSampleRate: 8000
NativeDataType: 'int16'
SampleType: 'SimultaneousSample'
SingleEndedIDs: [1 2]
SubsystemType: 'AnalogInput'
TotalChannels: 2
VendorDriverDescription: 'Windows Multimedia Driver'
VendorDriverVersion: '4.0'
80
A variável “Ai” (Analog input) possui todas as características de ligação entre o
Matlab e a placa de som. A ligação é feita através do objeto “winsound”.
b) Definir as propriedades de pertinentes ao adaptador conforme abaixo:
Existem várias maneiras de se fazer a aquisição de um sinal de som. Cada maneira
é escolhida definindo as propriedades do adaptador “winsound”. Na configuração acima
foi definido que:
- A amostragem será feita em apenas um canal (utiliza menos memória).
- A taxa de amostragem será de 22050 (metade da capacidade máxima da placa,
pois utiliza menos memória do que em 44100 Hz).
- A amostragem terá a duração de 0,7 segundos. (tempo suficiente para adquirir
amostra de palavras com até três sílabas).
- O disparo do início da aquisição será controlado pelo software (não
automática).
- A condição de disparo da aquisição é sinal de voz > 0,1 volts. Isto significa que
pequenos ruídos externos não fazem disparar a aquisição de dados.
Uma vez definidas as propriedades, executa-se a função “getdata(Ai)”, a qual será
responsável pela aquisição do sinal de som.
Os dados do som amostrados são armazenados na variável “dados” e o tempo de
aquisição, na variável “tempo”.
>> canal= addchannel(Ai,1:1); % Adiciona um canal da placa de som “ai”.
>> set(Ai,'SampleRate',22050); % Taxa de amostragem em 22050 Hz
>> taxa_atual = get(Ai,'SampleRate'); % taxa_atual = o valor da taxa de amostragem
>> set(Ai,'SamplesPerTrigger',taxa_atual*0,7); % define duração da amostragem em 0,7 segundos
>> set(Ai,'TriggerChannel',canal) % define o canal para o disparo da aquisicao
>> set(Ai,'TriggerType','Software') % define o controle do disparo através do software
>> set(Ai,'TriggerCondition','Rising') % define disparo da aquis. com voltagem >0 Volts
>> set(Ai,'TriggerConditionValue',0.1) % define voltagem >0.1Volts para iniciar aquisição
[dados,tempo] = getdata(Ai);
81
O Subprograma desenvolvido “AQ_S”, faz todo este procedimento de aquisição
dos dados do som e ainda utiliza estes dados para calcular a FFT do sinal.
Por fim este subprograma mostra na tela o gráfico do sinal amostrado, a FFT do
sinal e a densidade espectral do sinal em dB.
A figura 9.4 mostra a parte direita da tela do sistema Parlato (Janela Gráfica) com
os gráficos do sinal de som, da FFT e da densidade espectral da palavra “Pare”.
Figura 9.4: Gráficos do sinal de som, FFT e densidade espectral em dB da palavra “Pare”
gerados pelo sistema Parlato, através da sub-função AQ_S
82
��+����1����2�������������������3
O próximo passo após a aquisição do sinal é a filtragem. Como um sinal de voz
compreende a faixa frequências de 100 a 6.000 Hz, deve-se filtrar todas as freqüências
acima deste patamar. A função “filter” executa o processo de filtragem no MATLAB.
No entanto, esta função precisa de dados de entrada como o tipo de filtro usado, frequência
de corte, freqüência de aquisição, e a ordem do filtro.
��+�� ���4��!"%"!'�"����,-���$-�,�.%"��
�
��4�'�"!�1�,-��5�Para esta filtragem foi utilizado um filtro FIR (mais adequado ao
reconhecimento de voz, como visto no capítulo 6), passa baixa, tipo Butterworth, cuja
resposta em freqüência é mostrada na figura 9.5.
�
��"!*�"��1�,-��5� �A função “buttord” calcula a ordem do filtro a ser usado. Para
tanto deve-se fornecer a freqüência de corte do filtro (Wp), o ondulação(rp) em dB, a
atenuação em dB (rs) da freqüência acima do corte desejada (Ws).
Figura 9.5: Gráficos da resposta do filtro Passa Baixa, tipo “Butterworth” de ordem n=11
83
Neste caso especifico a freqüência de corte do filtro é 6.000 Hz com atenuação de
60 dB em 8.000 Hz e a ondulação de 3 dB. A freqüência de aquisição do sinal é 22.050 Hz.
Assim a freqüência de Nyquist fica em 11.025 Hz, praticamente o dobro da maior
frequência do sinal de voz, que gira em torno de 6.000 Hz .
O filtro tipo Butterworth, mencionado anteriormente é implementado pela função
“butter”, com os devidos coeficientes calculados e fornecidos pela função “buttord”.
Após a definição do tipo de filtro e suas características a filtragem é feita através
da função “filter”. Os passos para a execução destas funções são mostrados no quadro
abaixo.
�
�
�
�
�
�
�
�
�
�
�
�
��/ ���6��������11����������3�
Para se obter o espectro de freqüência do sinal amostrado optou-se pela utilização
direta da FFT por dois motivos:
- A simplicidade no uso e a rapidez da resposta.
Para calcular a FFT de um sinal no MATLAB utiliza-se a função “fft”, a qual
calcula os coeficientes de amplitude da freqüência do sinal desejado (discreto). No quadro
abaixo vê-se a função sendo usada para calcular o espectro de freqüência do sinal de voz
previamente filtrado.
% dados iniciais:>> Wp= 6000 Hz; % frequência de corte >> Ws= 8000 Hz; % frequência onde a atenuação é de 60dB >> rp =3 dB; % máximo ripple >> rs=60 dB; % atenuação na frequência de 8000 Hz
% calcula a ordem e os coeficientes do filtro >> [n,Wn] = buttord(Wp,Ws,rp,rs) % Calcula a ordem do filtro
% valores calculados: >> n = 11; % n= ordem do filtro >> Wn = 0.5472; % Wn= Coef. Referente a freq. de corte
% Implementação do filtro tipo Butterworth: [b,a] = butter(n,Wn); % b, a = Coeficientes do filtro.
% Sinal de voz armazenado na variável = dados% Filtragem do sinal de voz dados_f = filter(b,a,dados); % dados_f = contém sinal filtrado
84
Os valores fornecidos pela função “fft” geralmente são complexos e dispostos de
forma seqüencial. Para uma melhor apresentação gráfica deste sinal utiliza-se o valor
absoluto dos coeficientes e a visualização do gráfico é feita com o sinal centralizado. Na
figura 9.4 o segundo quadro mostra a FFT do sinal de voz .
��7 2��������������������������
Uma vez definida a amostra do sinal que se deseja gravar como padrão, basta
apenas gravar esta amostra em arquivo. O sistema de banco de dados escolhido foi o de
arquivos binários pois este tipo de arquivo ocupa menos espaço na memória.
Provavelmente o ponto mais difícil nesta etapa seja a escolha do sinal a ser gravado
como padrão. O sinal padrão será a base para o reconhecimento de um sinal qualquer.
Neste caso utilizou-se a escolha visual e auditiva, a qual é feita da seguinte maneira:
- Utilizando o programa Parlato [botão AQUISIÇÃO DE SINAL], pronuncia-se
várias vezes a palavra desejada.
- Através da Janela de Visualização (figura 9.3) procura-se visualizar qual é o
padrão gráfico da FFT destes sinais.
- O padrão visual que mais se repetir (ou aproximado) é o escolhido.
- Através do botão “OUVIR SOM” da janela de comando do sistema Parlato,
pode-se ouvir o som amostrado e verificar se o mesmo possuí uma boa
qualidade para gravação.
Portanto, a escolha da amostra padrão a ser gravada é feita pelo usuário visualmente
no software, com a ajuda da audição do sinal gravado.
A figura 9.6 mostra a parte da janela de comando do sistema Parlato, onde se
vêem os botões para gravação (GRAVAR AMOSTRA) e visualização (LER AMOSTRAS) das
amostras gravadas. Além disso existe um botão para apagar a amostra gravada (APAGAR
AMOSTRA), pois a escolha da amostra padrão pode não ter sido a melhor. Neste caso o
usuário pode apagar esta amostra e gravar uma nova. Pode-se ainda apagar todo o banco de
dados de amostras com o botão (APAGAR TODAS AMOSTRAS).
% O sinal filtrado está contido na variável “dados_f” % Calculo da FFT
>> yfft = fft(dados_f,Fs);
85
A opção “���� Ver Wavelet da Amostra”, (vista em um pequeno quadrado na tela) é
responsável pela visualização da wavelet do sinal.
Figura 9.6: Parte da tela do sistema “Parlato” responsável pela gravação de amostras de som
Ao clicar no botão “GRAVAR AMOSTRA” o sistema pedirá ao usuário que digite o
nome da palavra pronunciada. Este nome será gravado juntamente com o sinal amostrado.
O objetivo aqui é ter uma palavra escrita que identifique o sinal gravado. Posteriormente
esta palavra será usada no reconhecimento do sinal.
��8 ���� �������������������9������:��������� ���������
Com as amostras padrões gravadas, o sistema está pronto para efetuar o
reconhecimento das palavras pronunciadas.
Para executar o subprograma AQR (subprograma que faz o reconhecimento de voz
continuadamente) o usuário deve clicar no botão [ INICIA >>] situado no canto inferior
esquerdo da janela de comando.
O subprograma de reconhecimento é programado para fazer a leitura do sinal de
voz continuadamente. Para fazer com que o reconhecimento seja interrompido é necessário
clicar no botão usado para começar o reconhecimento. O usuário deve notar que este botão
agora tem a inscrição de ( >>>[PARE] ) e está com desenho aprofundado conforme figura
9.7. Vale salientar que durante a execução do reconhecimento de voz o sistema impede a
execução de qualquer outra tarefa.
A figura 9.7 mostra botão responsável pelo reconhecimento (janela de comando do
sistema Parlato) nas suas duas posições: iniciar o reconhecimento e parar o
reconhecimento.
86
Figura 9.7: Botão que executa o Reconhecimento de Voz.
à esquerda Inicia, à direita pára o Reconhecimento.
��8�� ���"! -����%()��"��'� %,�;!�� <!��*! -�=�
Ao clicar no botão “iniciar” o usuário executa o subprograma AQR, que por sua
vez faz um trabalho semelhante ao subprograma AQS, ou seja, faz a aquisição de um sinal
(amostragem), filtra este sinal, calcula a FFT, calcula a Densidade Espectral e mostra os
gráficos na tela. Agora o título da janela gráfica do sistema Parlato descreve que o sinal
amostrado é destinado ao reconhecimento de voz.
Em seguida o subprograma AQR executa automaticamente um outro subprograma
chamado CCorr. O subprograma CCorr calcula os coeficientes de correlação da FFT, da
Densidade Espectral e das Wavelets entre o sinal amostrado e os sinais previamente
gravados no banco de dados. Além disso este subprograma também decide se o sinal
corresponde ou não a alguma amostra gravada.
��8�+����*�-!'���>4!��*! -%�'�"%�����!,%()�
Usada freqüentemente em operações de radar, sonar, comunicação digital, entre
outras. A correlação mede a similaridade entre dois sinais [23]. Se os sinais forem
totalmente diferentes a correlação retorna 0. Se a correlação retornar um valor igual a 1,
então os sinais são idênticos. Portanto a correlação tem como resposta um valor sempre
entre 0 e 1.
Experimentalmente (capítulo 10) notou-se que os valores de correlação acima de
0.9 (90%) são valores onde existe uma alta probabilidade do sinal amostrado
corresponder ao gravado. Assim, o sistema foi programado para afirmar que a palavra
reconhecida é correta se a correlação da FFT for maior que 0.9 (90%).
Também é demonstrado na parte experimental (Capítulo 10) que com valores de
correlação abaixo de 0.6 (60%) não se pode afirmar nada sobre o sinal amostrado. Neste
87
caso o sistema foi programado para dar como resposta a palavra “VAZIO”, ou seja, não
houve reconhecimento do sinal.
Para valores de correlação da FFT entre 0.6 e 0.9 o sistema apresenta uma
probabilidade média do sinal amostrado corresponder ao gravado (Capítulo 10). Neste caso
não se pode afirmar com certeza que o sinal de voz reconhecido é realmente o sinal correto
(pronunciado).
Devido ao grau de incerteza obtido nos experimentos práticos (capítulo 10),
decidiu-se que somente a correlação da FFT não produz uma certeza de que o
reconhecimento esteja correto. Em mais de 64% dos casos de reconhecimento de palavras,
a correlação tem um grau de certeza considerado médio, ou seja, o coeficiente de
correlação da FFT ficou entre 0.6 e 0.9.
Com a maioria dos casos de reconhecimento sendo efetuados com a correlação
entre 0.6 e 0.9 (reconhecimento pela média) foi necessário adicionar um método à FFT
para que o sistema pudesse afirmar com certeza (ou com menor erro) que o sinal
reconhecido é realmente a palavra pronunciada pelo interlocutor.
A partir deste ponto é que se adiciona ao cálculo da correlação da FFT o cálculo da
correlação da densidade Espectral e das Wavelets (método alternativo de obtenção do
espectro de frequência de um sinal, como visto no capítulo 7).
��8�/������'$%,�.%()��"�'�!'$,-%"�'�"��!�� <!��*! -��"!���.
Após o cálculo das correlações faz-se a decisão se o sinal foi ou não reconhecido e
com que grau de certeza. A resposta é apresentada na tela em um espaço da janela de
comando do sistema Parlato.
A figura 9.8 mostra a parte da janela de comando onde são apresentados os
resultados do reconhecimento de voz.
Neste caso específico o reconhecimento foi efetuado com um valor de correlação
médio (entre 0.6 e 0.9).
A palavra reconhecida foi “PARE”, com os coeficientes de correlação da FFT
igual 0.74332, da Densidade Espectral de Potência igual a 0.81143 e da Wavelet igual
0.62421.
88
Figura 9.8: Parte da janela de comando do sistema Parlato
que exibe os resultados do Reconhecimento de Voz.
��? �������1�����@�������
A transformada Wavelet é utilizada no sistema Parlato como auxiliar à FFT. No
subprograma Ccorr, além da correlação da FFT, é feita também a correlação dos
coeficientes da transformada Wavelet entre o sinal amostrado e o gravado. O objetivo é
aumentar a confiabilidade da resposta do reconhecimento de voz.
Os coeficientes cA1 , cD1 , cA2 , cD2 , ... cA10 , cD10 , são obtidos através da
função “wavedec” do MATLAB. Esses coeficientes são usados para auxiliar a
identificação dos sinais no reconhecimento de voz através da correlação.
A função wavedec decompõe um sinal de dados (variável = dados_f) utilizando a
transformada Wavelet. Para tanto é necessário informar quantos níveis (n) de
decomposição serão efetuados e qual o tipo de Wavelet utilizada .
No sistema Parlato foi utilizada a decomposição com 10 níveis e Wavelet tipo
“db10”.
��A������������������������������9������
Após o reconhecimento positivo de uma palavra, ou seja, um comando de voz
reconhecido corretamente, chega-se ao objetivo final que é o acionamento de um sistema
eletro-eletrônico através deste comando de voz.
% decomposição de um sinal filtrado “dados_f” % pela transformada Wavelet
>> n= 10; % níveis >> [C,L] = wavedec(dados_f,n,'db10');
89
Para fazer o acionamento o sistema deve:
- Reconhecer corretamente a palavra falada pelo “locutor”.
- Identificar a palavra reconhecida.
- Executar o acionamento do sistema conforme a palavra reconhecida.
Como exemplo de reconhecimento pode-se citar as palavras “ANDE” e “PARE” as
quais poderiam ordenar a um robô que ande ou pare, respectivamente.
Para identificar a palavra reconhecida o sistema Parlato utiliza-se da palavra
gravada juntamente com o sinal de voz na opção “gravar amostra”, e compara com a
palavra reconhecida.
Uma vez reconhecida e identificada a palavra, o sistema deve emitir um comando
através da porta paralela ou serial para acionar o sistema elétrico adequadamente.
��A��������$�-���,!-�B ����"!����� %*! -��
Após o reconhecimento da palavra o sistema envia um sinal específico à porta
paralela ou serial do computador. Esse sinal deve ser trabalhado por um sistema eletrônico
digital com a finalidade de prover (estágio de potência) o acionamento de um equipamento
elétrico qualquer.
A figura 9.9 mostra o esquema dos pinos da porta paralela de um computador PC,
bem como a respectiva função de cada pino.
Figura 9.9: Pinos da porta paralela de um computador PC
90
O sinal de saída de uma porta paralela pode ser emitido nos pinos D0, D1, D2, D3,
D4, D5, D6, D7 e D8. Com 8 pinos de saída (podem ser utilizados ainda mais 4 pinos) o
sistema pode trabalhar com um sinal de saída de 8 bits (ou no máximo 12 bits).
No entanto, não pode-se acionar diretamente através da porta paralela nenhum
sistema eletrônico, pois a tensão de saída é 5 Volts e a corrente fornecida pela porta é da
ordem de 10 a 50 mA.
Portanto, para acionar quaisquer equipamentos a partir da porta paralela deve-se
utilizar um circuito eletrônico que forneça a corrente necessária para o acionamento, ou
seja, um circuito de potência. A figura 9.10 mostra um circuito básico de acionamento de
um sistema a partir da porta paralela.
�
Figura 9.10: Circuito de acionamento elétrico
No circuito acima, o chip 74LS541 é usado para proteger a Porta Paralela de altas
correntes. Ele é alimentado com 5 Volts, diferente da outra parte do circuito que controla o
relê, que precisa de 12v para ser acionado. Os contatos do relê devem suportar 220V/10A,
para que se possa acionar aparelhos de potência, se assim for desejado.
Neste circuito pode-se controlar até oito dispositivos simultaneamente, a partir das
saídas S1 a S8. Se o objetivo for controlar mais do que um dispositivo, basta adicionar
mais circuitos, idênticos ao da saída S1, às demais saídas (S2 a S8).
91
������������ �������������� �������������� ������������
Este capítulo visa demonstrar a utilização prática do sistema Parlato, ou seja,
controlar um equipamento elétrico através de comandos de voz.
Os experimentos realizados podem ser divididos em duas partes:
- Experimentos de reconhecimento de palavras.
- Experimentos de acionamento.
���������������������� ��� ������������������
O maior problema encontrado na fase dos testes do sistema, foi encontrar a melhor
maneira de fazer a escolha de qual palavra correspondia ao sinal medido.
Como citado no capítulo 9, o sistema faz a identificação (reconhecimento) do sinal
através do cálculo da correlação. O coeficiente de correlação é calculado entre o sinal
amostrado e os sinais previamente gravados.
��������������������� ��!"�������"�##��
Vários testes foram realizados com a utilização do coeficiente de correlação da
FFT. O teste apresentado a seguir reflete os problemas encontrados neste experimento.
Este teste foi realizado com um banco de dados de 10 palavras (números de zero a
nove). Para manter um padrão no sistema foi utilizado sempre o mesmo microfone (tipo
Close-Talk) tanto na gravação dos padrões quanto no reconhecimento. O volume e a
distância do microfone à boca do locutor foram mantidas dentro de um padrão Para esse
teste foi computada somente a correlação da FFT . O gráfico da figura 10.1 mostra os
resultados obtidos.
Dados:
- Palavras usadas: UM, DOIS, TRÊS, .... , NOVE e ZERO.
- Coef. de Correlação: Somente FFT.
- Microfone: Tipo “Close-Talk” (aprox. 3cm da boca)
- Volume: 70% do valor máximo.
92
Resultados:
- Quantidade de Testes: 50 testes.
- Quantidade e Porcentagem de Acerto: 28 Acertos , 56 %
- Quantidade e Porcentagem de Erro: 22 Erros, 44 %
- Acertos com coeficiente acima de 0.9: 19 (67 % dos acertos)
- Acertos e Erros com coef. entre 0.6 e 0.9: 32 (64% dos testes)
- Todos os reconhecimentos tiveram coef. de correlação acima de 0.6.
Figura 10.1: Gráfico do teste de reconhecimento somente com correlação da FFT
Pode-se ver no gráfico da figura 10.1 que para todos os reconhecimentos, certos ou
errados, o valor do coeficiente de correlação da FFT ficou acima de 0.6.
Nota-se ainda que todos os reconhecimentos errados tiveram coeficiente de
correlação entre 0.6 e 0.9.
Pode-se afirmar também que cerca de 68% dos reconhecimentos acertados tiveram
coeficiente igual ou maior que 0.9 (19 dos 28 acertos com coef.>=0.9).
Portanto, com este teste encontrou-se o limite prático da utilização da correlação da
FFT, ou seja:
93
- Coeficiente de Correlação abaixo de 0.6: Neste caso valores de correlação
abaixo de 0.6 indicam reconhecimento de voz indefinido.
- Coeficiente de Correlação acima de 0.9: Neste caso valores de correlação
acima de 0.9 indicam reconhecimento de voz correto.
- Coeficiente de Correlação entre 0.6 e 0.9: Para valores de correlação entre 0.6
e 0.9 indica reconhecimento de voz médio, ou impreciso.
Apesar de se ter um nível de acerto maior que 55%, este valor ainda é baixo.
O objetivo a seguir era melhorar o nível de acerto do sistema. Para tanto foram
utilizados além do coeficiente da FFT, mais dois parâmetros de teste: A densidade
espectral e as Wavelets do sinal.
Os motivos para tal escolha foram:
a) Dos 50 testes efetuados, 32 (64%) tiveram coeficiente de correlação entre 0.6 e
0.9 (certos ou errados). Portanto é nesta faixa de valores que se deve trabalhar
para melhorar a porcentagem de acerto do sistema.
b) A natureza singular de algumas palavras as torna foneticamente parecidas, ou
seja, a pronuncia de palavras como “três” e “seis” podem causar erros de
reconhecimento (figura 10.2).
A figura 10.2 mostra o gráfico da FFT (segundo gráfico) das palavras “três” e
“seis”.
O espectro de freqüência (FFT) da palavra “três” é muito semelhante ao da palavra
“seis”, havendo apenas diferença de amplitude.
Pode-se notar ainda, que a densidade espectral é consideravelmente diferente nas
duas palavras. Este fato torna o cálculo do coeficiente de correlação da densidade espectral
interessante no auxílio da escolha de qual sinal é mais apropriado ao reconhecimento.
Na figura 10.3, vemos as formas de onda das Wavelets das palavras “três” e “seis”.
Nesta figura estão apresentadas duas Wavelets de cada palavras.
As Wavelets de cada palavra são substancialmente diferentes. Assim o coeficiente
de correlação das wavelets pode ser também um auxiliar na escolha da amostra correta no
reconhecimento.
94
Figura 10.2: Comparação gráfica das palavras “três” e “seis” (Sinal, FFT e Densidade Espectral)
Figura 10.3: Comparação gráfica das palavras “três” e “seis” (Wavelets)
95
�����$��������������� ��!"�������"�##�%�����!�&�����'����&(���)&*�(����
Neste teste de reconhecimento foram utilizadas as mesmas palavras do teste
anterior. A diferença está no fato de que foram levados em consideração os coeficientes de
correlação da FFT , da Densidade Espectral e das Wavelets do sinal.
Com objetivo de manter um padrão, os mesmos dados do teste anterior foram
mantidos.
As figuras 10.4 e 10.5 mostram os gráficos com os resultados dos coeficientes de
correlação da FFT, da Densidade Espectral (dB) e das Wavelets (Wav), bem como os erros
e acertos obtidos.
Figura 10.4: Gráfico do teste de reconhecimento com as correlações da FFT, Densidade Espectral e Wavelet
Figura 10.5: Gráfico do teste de reconhecimento com erros e acertos
Os resultados obtidos foram:
96
- Quantidade de Testes: 30 testes.
- Quantidade e Porcentagem de Acerto: 24 (80 %)
- Quantidade e Porcentagem de Erro: 06 (20 %)
Nota-se que com o uso em conjunto dos coeficientes de correlação da FFT, da
Densidade Espectral e das Wavelets a porcentagem de acerto aumentou consideravelmente
chegando a 80%. Vale salientar que os melhores sistemas de reconhecimento de voz do
mercado garantem 85% de acerto no reconhecimento de voz, podendo chegar a 95%.
Um outro dado importante é que quando ocorreu o erro no reconhecimento, a
palavra reconhecida (errada) era similar à palavra correta (pronunciada).
Esta similaridade pode ser fonética como citada no item anterior, ou em alguns
casos pode haver similaridade de entonação. Como exemplo pode-se citar as palavras
“zero” e “nove”. Apesar de serem foneticamente bem diferentes estas palavras possuem
uma entonação similar, ou seja, possuem a mesma sílaba tônica , a primeira.
�����+����'�����,�&"&��&���&(&*�&��
Experimentalmente pode-se notar que palavras foneticamente similares aumentam a
probabilidade de um reconhecimento errôneo. Uma maneira de visualizar este fato é
através do espectrograma da palavra. O espectrograma mostra a intensidade das
freqüências existentes no sinal amostrado.
A figura 10.7 mostra o Espectrograma da palavra “Esquerda”. Pode-se notar
facilmente as três regiões de frequência distintas, correspondendo às três sílabas da
palavra. Do inicio do sinal até perto de 0.15 segundos vê-se a sílaba “es”. De 0.15s a
aproximadamente 0.23s ocorreu um espaço que é chamado teoricamente de “Unvoiced” ou
um período de baixa voz (capítulo 3). De 0.23s até 0.45s vê-se a sílaba “quer”, a qual
praticamente não se extingue devido ao “r” no final da sílaba. De 0.45s até 0.5s tem-se
outro período de baixa voz “Unvoiced”. Finalmente de 0.5 a 0.6 segundos vê-se a última
sílaba “da”.
Vale salientar que o espectrograma visto na figura 10.7 apresenta freqüências de até
6 KHz devido ao sinal ser filtrado acima deste patamar.
O tempo de amostragem desta palavra é de 0.6 segundos.
97
Figura 10.6: Sinal amostrado e Espectrograma da palavra “Esquerda”
A figura 10.7 mostra o sinal e o espectrograma da palavra “direita”. Apesar de ter
três sílabas e a mesma sílaba tônica da palavra esquerda, pode-se notar que os espectros
destas palavras são bem diferentes.
A distância entre as sílabas “di” e “rei”, é pequena, da ordem de 0.02s, e pode-se
ver que as mesmas estão bem próximas.
Já as sílabas “rei” e “ta” estão distantes cerca de 0.1s. Isto se dá devido à maneira
como se pronuncia a palavra “direita”, ou seja, pronuncia-se mais rápido “direi” e se
alonga o “i” para em seguida pronunciar a sílaba “ta”.
Por fim pode-se notar que, a exemplo da palavra “esquerda”, a palavra “direita”
também apresenta espaços intermediários (Unvoiced) entre as sílabas. Isto caracteriza a
separação silábica da língua portuguesa. O objetivo desta dissertação é estudar o
reconhecimento de voz para o acionamento de equipamentos elétricos. Neste caso os erros
devem ser mínimos, ou pode-se correr o risco de se ter um acionamento equivocado. Com
o intuito de reduzir estes possíveis erros no acionamento por comandos de voz, sugere-se o
uso de palavras foneticamente diferentes e, se possível, com sílabas tônicas não
semelhantes, na confecção do banco de dados de amostras padrão.
98
Figura 10.7: Sinal amostrado e Espectrograma da palavra “Direita”
���$����������������� ��������
O MATLAB 6 disponibiliza ao usuário funções de manipulação para acionamento
elétrico tanto analógico como digital. Para tanto basta programar as características do
sistema elétrico desejado para que o mesmo seja acionado pela porta paralela ou serial do
computador.
Portanto, qualquer sistema elétrico pode ser acionado por comandos de voz através
do sistema Parlato (desde que seja programado adequadamente). Freqüentemente é
necessário o desenvolvimento de uma interface (circuito de potência, conforme visto no
capítulo 9) de controle do sistema elétrico a ser acionado.
O sistema elétrico a ser controlado neste experimento é um robô didático chamado
“Khepera”. A escolha do robô Khepera se deu pelos seguintes motivos:
- O laboratório de robótica do curso de Engenharia Elétrica da UDESC dispõe de
um robô Khepera para uso em pesquisas.
99
- Existem rotinas de controle do robô Khepera geradas para o MATLAB 6. Isto
se deu pelo fato do Khepera ser um robô didático amplamente utilizado.
- Não é objetivo deste trabalho desenvolver um sistema eletrônico para controlar
um sistema elétrico qualquer, mas sim demonstrar a utilidade do sistema de comando de
voz. Portanto o robô Khepera torna-se ideal pois possui uma interface (circuito de
potência) pronta para ser usada, bastando apenas conectá-la ao computador.
Se o sistema Parlato é capaz de acionar um robô do tipo didático como o Khepera
então será capaz de acionar, por comando de voz, qualquer outro sistema elétrico, desde
que observadas suas características de acionamento e comando.
���$������-.�/ �'��&�
Khepera é um robô miniatura do tipo móvel e possui funcionalidade semelhante aos
grandes robôs usados em pesquisa e em sistemas didáticos. A figura 10.6 mostra o robô
Khepera .
Figura 10.8: Robô Khepera
O Khepera foi projetado originalmente como uma ferramenta pedagógica para um
Programa de Pesquisa da EPFL em Lausanne-Suíça.
100
O Khepera permite testar em ambientes reais os algoritmos desenvolvidos em
simulação, tais como: movimento em trajetória plana, desvio de obstáculos, pré-
processamento de informações de sensores (luz e aproximação), entre outros.
Muito modular em nível de software e hardware, o Khepera tem uma biblioteca
muito eficiente de aplicações para controlar o robô.
Possui também um grande número de módulos de extensão, o que o torna
adaptável a uma extensiva gama de experimentos.
Para facilitar a programação do robô, o fabricante disponibiliza diversas
ferramentas de controle para vários softwares de desenvolvimento. Entre eles estão o
“SysQuake”, o LabVIEW e o Matlab. Existe ainda a possibilidade de programar o
robô Khepera com linguagem C.
O robô Khepera é compacto, de fácil uso, possui um micro controlador com grande
poder de processamento, além de muitos sensores.
O software do robô é de domínio livre, o que facilita o trabalho com o mesmo.
Devido à sua grande flexibilidade e também à vasta gama de acessórios que podem
ser acoplados a ele, o robô Khepera pode ser utilizado em inúmeras experiências, tais
como: Navegação, Inteligência Artificial, Controle, Programação em tempo real, etc.
���$�$��� �"&���������&�(&-�'&�&�����-.�/ �'��&�
Como citado anteriormente, o fabricante do robô Khepera disponibiliza ao usuário
ferramentas prontas para várias plataformas de desenvolvimento, inclusive para
MATLAB. Dentre os subprogramas disponibilizados pelo fabricante, pode-se citar alguns
como o controle para o robô andar, virar, parar, etc.
O objetivo aqui é apenas demonstrar que este robô pode ser controlado por
comandos de voz e portanto apenas comandos simples foram utilizados.
Para fazer com que o robô ande para frente por exemplo, deve-se executar a função
do Khepera chamada de “Ksetspeed”. Esta função deve estar inserida no subprograma de
reconhecimento de voz, para que quando o reconhecimento for positivo, o robô possa ser
acionado automaticamente, ou seja, “ande”.
Para fazer com que o robô “pare” deve-se executar a função “Kstop”, a qual faz
com que o robô “pare”.
101
���$�+������0(�&�����-�!����
Inicialmente os testes realizados com o sistema Parlato foram somente de
reconhecimento da palavra pronunciada sem o acionamento de qualquer equipamento (fase
de testes preliminares, item 10.1).
Uma vez que o sistema funcionava bem no reconhecimento de palavras passou-se
para a etapa final, ou seja, acionar um equipamento elétrico através de comandos de voz.
A primeira bateria de testes realizada com o robô Khepera, tinha como objetivo
fazer o robô andar, parar e voltar continuadamente. Vários testes desta natureza foram
realizados. Os resultados obtidos em um destes testes são apresentados abaixo e
representam o comportamento médio de todos os testes deste experimento:
- Quantidade de Testes: 30 testes.
- Palavras utilizadas: ANDE, PARE, VOLTE.
- Quantidade e Porcentagem de Acerto: 27 Acertos , 90 %
- Quantidade e Porcentagem de Erro: 03 Erros, 10 %
Vale salientar que os erros aqui apresentados foram de não reconhecimento, ou
seja, o valor da correlação nestes casos ficou abaixo de 0.6.
A segunda bateria de testes realizada, tinha como objetivo fazer o robô virar a
esquerda e voltar, virar a direita e voltar, continuadamente. Novamente vários testes foram
realizados e um deles é apresentado abaixo:
- Quantidade de Testes: 30 testes.
- Palavras utilizadas: ESQUERDA, DIREITA,
VOLTE, PARE
- Quantidade e Porcentagem de Acerto: 22 Acertos , 73 %
- Quantidade e Porcentagem de Erro: 08 Erros, 27 %
Nesta bateria de testes, pode-se notar que a porcentagem de erro aumentou. Este
resultado ocorreu devido ao fato de que as palavras “direita” e “esquerda” possuem
espectros parecidos, como o caso das palavras “três” e “seis” , citadas anteriormente.
102
Com o objetivo de melhorar a porcentagem de acertos, foi feita uma terceira bateria
de testes. Agora a palavra “esquerda” foi substituída pela palavra “vire” na função de fazer
com que o robô vire a esquerda. Os resultados obtidos em média foram:
- Quantidade de Testes: 30 testes.
- Palavras utilizadas: ANDE, PARE, VOLTE,
“VIRE”, DIREITA.
- Quantidade e Porcentagem de Acerto: 25 Acertos , 83 %
- Quantidade e Porcentagem de Erro: 05 Erros, 17 %
Nesta bateria de testes ficou claro que para fazer um acionamento qualquer, a
palavra correspondente a este acionamento pode ser substituída com o objetivo de
melhorar o desempenho do sistema de reconhecimento. Como por exemplo, se o objetivo
for acionar uma lâmpada pode-se utilizar as palavras “ligue”, “luz” etc.
Portanto o reconhecimento de voz para acionamento de um sistema eletro-
eletrônico é viável dentro das limitações aqui discutidas, ou seja, para se obter um maior
acerto no reconhecimento, o banco de amostras padrão deve ser formado por palavras com
pouca semelhança espectral. Havendo necessidade de utilização de um grande banco de
dados de amostras é recomendável a utilização de algoritmos inteligência artificial, tais
como as redes neurais.�
103
���������
Neste trabalho chegou-se a conclusão que o desenvolvimento de sistemas de
reconhecimento de voz para comandar equipamentos elétricos é totalmente viável,
ressalvando-se o fato que poucas palavras formam o banco de dados de amostras
utilizado.
Para sistemas de reconhecimento de voz, onde o objetivo é o reconhecimento de
pronúncia contínua (ditado), são necessárias ferramentas de busca mais eficientes e
rápidas, tais como o uso de Redes Neurais e Inteligência Artificial. Isto se dá, devido ao
fato do banco de dados de amostras possuir uma grande quantidade de palavras, o que
torna proibitivo o uso de um mecanismo de busca linear e uma análise simples do sinal.
Vários são os fatores que influem no reconhecimento de voz. A posição do
microfone, o volume do microfone, a distância do microfone à boca do usuário, o timbre
de voz do usuário, a qualidade da placa de som, os ruídos (barulho) do ambiente, os ruídos
do sistema (ruídos de rede), dentre outros. Todos estes fatores influem no resultado do
reconhecimento de voz e portanto concluí-se que para se obter melhores resultados deve-se
padronizar estes fatores o máximo possível. Para tanto deve-se usar sempre o mesmo
microfone, tanto na gravação, como no reconhecimento e procurar manter suas
características, como o volume. Deve-se também utilizar um microfone tipo Close-Talk,
que ajuda a manter uma distância padrão do microfone à boca do usuário. Deve-se ainda
eliminar ao máximo os ruídos de rede e do ambiente fazendo as filtragens necessárias.
O tamanho do banco de dados de amostras ainda é o grande problema a ser
vencido. Apesar da grande capacidade de processamento dos computadores atuais, o
tamanho do banco de dados influi diretamente no desempenho de um sistema de
reconhecimento de voz contínuo (on line).
A interdisciplinaridade do sistema de reconhecimento de voz, a vasta gama de
conhecimentos necessários e a sua inerente complexidade, fazem concluir que para
desenvolver um sistema de reconhecimento de voz que possa reconhecer e interpretar
104
corretamente o ditado humano é necessário o esforço conjunto de uma equipe de
pesquisadores com conhecimento nas mais diversas áreas afins e uma boa gama de
investimento em equipamentos.
Por fim concluí-se que o desenvolvimento de um sistema de reconhecimento de voz
para o controle de equipamentos pode ser considerado como fato concreto nos dias de hoje
e que as cenas de ficção científica dos filmes de Hollywood, onde homens conversam com
máquinas inteligentes, em breve poderão ser realidade.
Como sugestão de trabalhos futuros propõe-se o reconhecimento contínuo de
palavras (ditado), pela tentativa de reconhecer palavras em português através de suas
sílabas, o que poderia diminuir significantemente o tamanho do banco de dados. Como
visto no capítulo 10, através do espectrograma, pode-se ver que as palavras em português
têm uma divisão silábica bem definida (é claro com exceções), o que pode facilitar em
muito o sistema de reconhecimento de voz, pois o núcleo de reconhecimento passaria a ser
a sílaba e não mais a palavra.
Esta linha de raciocínio, aliada a métodos de busca usando Inteligência Artificial,
podem viabilizar o sistema de reconhecimento de voz contínua.
� �
105
��������������� �������
[1] K. H. Davis, R. Biddulph, and Balashek, “Automatic Recognition of Spoken Digits”, J. Acoust. Soc. Am., 24 (6) : 637-642, 1952.
[2] H. F. Olson and H.Belar, “Phonetic Typewriter”, J. Acoust. Soc. Am., 28(6): 1072-1081, 1956.
[3] D. B. Fry, “Theoretical Aspects of Mechanical Speech Recognition”; and P. Denes, “The Design and Operation of the Mechanical Speech Recognizer at University College London”, J. British Inst. Radio Engr., 19: 4,211-229,1959.
[4] J. W. Forgie and C. D. Forgie, “Results Obtained From a Vowel Recognition Computer Program”, J. Acoust. Soc. Am., 31(110: 1480-1489, 1959.
[5] J. Suzuki and K. Nakata, “Recognition of Japanese Vowels – Preliminary to the Recognition of Speech”, J. Radio Res. Lab. 37 (8): 193-212, 1961. [6] T. Sakay and S. Doshita, “The Phonetic Typewrite – Information Processing”, Proc.
IFIP Congress, Munich, 1962.
[7] K. Nagata, Y. Kato, and S. Chiba, “Spoken Digit Recognizer for Japanese Language”, NEC Res. Develop., No. 6, 1963.
[8] T. B. Martin, A. L. Nelson, and H. J. Zadell, “Speech Recognition by Feature Abstraction Techniques”, Tech. Report Al-TDR-64-176, Air Force Avionics Lab, 1964.
[9] T. K. Vintsyuk, “Speech Discrimination by Dynamic Programming”, Kibernetika, 4 (2): 81-88, Jan-Feb, 1968.
[10] D. R. Reddy, “An Approach to Computer Speech Recognition by Direct Analysis of Speech Wave”, Tech. Report No. C549, Computer Science Dept., Stanford Univ., September 1966.
[11] V. M. Velichko and N. G. Zagoruyko, “Automatic Recognition of 200 words”, Int. J. Man-Machine Studies, 2:223, June 1970.
[12] H. Sakoe and S. Chiba, “Dynamic Programming Algorithm Optimizations for Spoken Word Recognition”, IEEE Trans. Acoustics, Speech, Signal Proc. ASSP-26 (1): 43-49, February 1978.
[13] F. Itakura, “Minimum Prediction Residual Applied to Speech Recognition”, IEEE Trans. Acoustics, Speech, Signal Proc., ASSP-23(1): 67-72, February 1975.
[14] H. Sakoe, “Two Level DP Matching – A Dynamic Programming Based Pattern Matching Algorithm for Connected Word Recognition”. IEEE, Trans. Acoustics, Speech, Signal Proc. ASSP-27: 588-595, December 1979.
[15] J. Ferguson, Ed., “Hidden Markov Models for Speech”, IDA, Princeton, NJ, 1980.
106
[16] A. Weibel, T. Hanazawa, G. Hinton, K. Shicano, and K. Lang, “Phoneme Recognition Using Time-Delay Neural Networks”, IEEE Trans Acoustics, Speech, Signal Proc. 37: 393-404, 1989.
[17] Lawrence Rabiner & Biing-Hwag Juang, “Fundamentals of Speech Recognitions”, Prentice Hall Signal Processing Series. Allan V. Oppenheim, Series Editor. Prentice Hall Company– New Jersey – October/2000.
[18] Berne, R. M. & Levy, M. N., “Physiology, 3th ed.”, Mosby Year Book, Boston – 1993.
[19] Zill, Gennis G. “A First Course in Differential Equations with Applications”. 4th Ed. PWS-Kent Publishing Company, 1989.
[20] E. Oran Brigham, “The Fast Fourier Transform and its Applications”, Prentice Hall, processing series. New Jersey 1988.
[21] Walker, J. “A Primer on Wavelets and Their Scientific Applications”, USA; CRC Press,
1999.
[22] K-TEAM, “página dos desenvolvedores do robô Khepera” - www.k-team.com
[23] Proakis, Jonh G. and Manolakis, Dimitris G. “Digital Signal Processing: Principles,
Algorithms, and Applications”. Upper Saddle River, New Jersey: Third Edition – Prentice
Hall, 1996.
[24] Jackson, L.B. “Digital Filters and Signal Processing”. Third Ed. Boston: Kluwer
Academic Publishers, 1989.
[25] Kay, S.M. “Modern Spectral Estimation”. Englewood Cliffs, NJ: Prentice Hall, 1988.
[26] Oppenheim, A.V., and R.W. Schafer. “Discrete-Time Signal Processing”. Englewood
Cliffs, NJ: Prentice Hall, 1989.
[27] Parks, T.W., and C.S. Burrus. “Digital Filter Design”. New York: John Wiley & Sons,
1987.
[28] Antoniou, A., “Digital Filters: Analysis, Design, and Applications”, Second Edition,
McGraw-Hill, Inc. 1993.
[29] Jackson, L., “Digital Filtering and Signal Processing with MATLAB Exercises”, Third
edition, Kluwer Academic Publishers, 1996.
107
[30] McClellan, J.H., C.S. Burrus, A.V. Oppenheim, T.W. Parks, R.W. Shafer, and H.W.
Schuessler, “Computer-Based Exercises for Signal Processing Using MATLAB 5”,
Prentice-Hall, 1998.
[31] “Fonética, Semântica, Fonologia, Sintaxe, Morfologia” – site sobre a língua portuguesa.
http://www.portugues.com.br/.
[32] Selesnick, I.W., and C.S. Burrus. "Generalized Digital Butterworth Filter Design." Proceedings of the IEEE Int. Conf. Acoust., Speech, Signal Processing. Vol. 3 (May 1996).
[33] Moore, Martin L. “Sound Blaster o Livro definitivo”. Editora Campus – RJ 1994.
[34] Bispo, Sidney Cerqueira. “Silabas como unidades fonéticas para o Reconhecimento
automático de Voz em Português”. Revista controle e Automação – Abril 2001.