Ferramenta para conversão texto-fala de aplicações Windows...

39
Ferramenta para conversão texto-fala de aplicações Windows Forms Acadêmico: Fernando Erhardt Orientadora: Joyce Martins

Transcript of Ferramenta para conversão texto-fala de aplicações Windows...

Page 1: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Ferramenta para conversão texto-fala de aplicações Windows

FormsAcadêmico: Fernando Erhardt

Orientadora: Joyce Martins

Page 2: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Roteiro

• Introdução• Objetivos• Fundamentação teórica• Desenvolvimento da ferramenta• Conclusão• Extensões

Page 3: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Introdução

• Definição de sistemas de conversão texto-fala

• Utilidades destes sistemas• Dificuldades no desenvolvimento de

sistemas de conversão texto-fala• Desenvolvimento da ferramenta focada

em uma tecnologia específica

Page 4: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Objetivos

• Identificar aplicações Windows Forms que podem ser interpretadas

• Obter informações textuais destas aplicações

• Processar estas informações em português e em inglês

• Converter o texto processado em áudio

Page 5: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Fundamentação teórica

• Processamento textual– Pré-processamento

– Análise linguística– Identificação dos fonemas

– Processamento prosódico– Síntese do texto em áudio

Page 6: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Fundamentação teórica

• Gramáticas das línguas portuguesa e inglesa– Regras que definem a forma mais correta de

utilização de uma língua

– Fonologia e morfologia– Sintaxe e semântica

Page 7: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Fundamentação teórica

• Ferramenta ManagedSpy e biblotecaManagedSpyLib– ManagedSpy mostra os componentes que

formam a interface de uma aplicação

– Características da ManagedSpyLib• Identificação de componentes de interface• Obtenção de informações destes componentes• Interceptação de eventos ocorridos na interface da

aplicação

Page 8: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Fundamentação teórica

• Biblioteca System.Speech– Bibloteca padrão do Microsoft .Net

Framework– Utiliza-se do recurso de fala nativo do

Sistema Operacional

– Simples utilização– Aceita o formato SSML como entrada de

dados

Page 9: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Fundamentação teórica

• Trabalhos correlatos– FurbTTS (Thiago M. Oechsler – FURB)

– Sistema para conversão de textos em fonemas (Dimas T. Chbane – USP)

– Sistema para conversão texto fala para a língua portuguesa (Leandro C. Gomes –UNICAMP)

Page 10: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Desenvolvimento da ferramenta

Especificação• Requisitos• Relação de componentes de interface suportados• Lista de siglas, abreviações e pronúncias diferenciadas• Diagramas UML

Implementação da ferramenta

Page 11: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: Requisitos

Funcionais:• identificar aplicações que possam ser interpretadas• permitir que o usuário escolha qual aplicação deve ter

seu conteúdo sintetizado• permitir configurar o idioma: português ou inglês• obter informação textual da interface da aplicação• fazer a conversão texto-fala• permitir entrada manual de textos para testes• visualizar o resultado do processamento textual• executar a conversão de forma assíncrona

Page 12: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: Requisitos

Não funcionais:• funcionar com o sistema operacional Windows XP ou

superior

• utilizar a linguagem de programação C#

Page 13: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: relação de componentes

• Componentes do framework:

TabControlListViewDomainUpDown

TreeViewSplitContainerListBoxDateTimePicker

TrackBarRadioButtonLinkLabelComboBox

TextBoxProgressBarLabelCkeckedListBox

TabPagePanelGroupBoxCheckBox

TableLayoutContainerNumericBoxFlowLayoutPanelButton

ComponenteComponenteComponenteComponente

• Componentes criados pelo usuário

Page 14: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: siglas, abreviações e pronúncias diferenciadas

• Siglas:– sequência de duas ou mais letras maiúsculas

– utiliza dicionário de siglas– dicionários diferenciados para português e

para inglês– pronúncia letra a letra caso não se encontre

no dicionário

Page 15: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: dicionário de siglas

• Exemplo de algumas siglas em português:

Personal ComputerPCTelevisãoTV

RegravávelRWDevedêDVD

CedêCDPolícia MilitarPM

Abêene TêABNTFurbFURB

Santa Catarina SC Estados Unidos da AméricaEUA1

Forma extensaSiglaForma extensaSigla

Page 16: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: dicionário de siglas

• Exemplo de algumas siglas em inglês:

New YorkNYTelevisionTV

Re-writableRWDvdDVD

CdCDUnited States of AmericaUSA

Forma extensaSiglaForma extensaSigla

Page 17: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: dicionários de abreviações

• Exemplo de algumas abreviações em português:

Telefonetel.centímetrocm.

pagamentopagto.companiacia.

quilômetroskm.centigramacg.

quilogramaskg.bacharelbel.

habitantehab.avenidaav.

figurafig.apartamentoapart.

Estradaestr.apartamentoapto.

Forma extensaAbreviaçãoForma extensaAbreviação

Page 18: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: dicionários de abreviações

• Exemplos de algumas abreviações em inglês:

milesmi.centimeterscm.

miligramsmg.kilometerskm.

Yearsyr.kilogramskg.

Monthsmo.avenueave.

Weekwk.editioned.

Hourshr.doctordr.

Minutesmin.abbreviationabbr.

Forma extensaAbreviaçãoForma extensaAbreviação

Page 19: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: dicionários de pronúncias diferenciadas

• Pronúncias diferenciadas em português:

compiutercomputercêchárpc#

pêrsonalpersonalgu gouGoogle

Pronúncia adaptadaPalavraPronúncia adaptadaPalavra

• Dicionário de pronúncias diferenciadas em inglês é vazio por padrão

Page 20: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: Diagrama de casos de uso

Page 21: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: Diagrama de classes

Page 22: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: Diagrama de classes

Page 23: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: Diagrama de classes

Page 24: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: Diagrama de classes

Page 25: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Especificação: Diagrama de classes

Page 26: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: técnicas e ferramentas utilizadas

• Linguagem C#

• Visual Studio

• Voz em português “Nuance Raquel Brazilian Portuguese Female 22khz”

Page 27: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: interpretação da interface

• Carregar aplicações compatíveis

• Carregar componentes que formam a aplicação selecionada

• Carregar componentes filhos recursivamente quando necessário

Page 28: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: interceptação de eventos

• São subscritos os eventos que devem ser interceptados ao instanciar cada componente

• Cada componente específico descreve seus eventos

• Cada componente específico manipula seus eventos

Page 29: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: processamento de texto

• Etapas:– substituir abreviações

– substituir siglas– substituir datas

– substituir números– substituir pronúncias diferenciadas

Page 30: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: processamento de texto

• Substituição de abreviações, siglas e pronúncias diferenciadas:– utilizadas expressões regulares

– dicionários específicos para cada idioma

– procuradas entre caracteres de quebra

Page 31: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: processamento de texto

• Substituição datas em três possíveis formatos:– dia/mês/ano

– dia/mês– mês/ano

– diferenciação entre dia/mês para o idioma inglês

Page 32: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: processamento de texto

• São substituídos os seguintes tipos de números:– valores monetários

– números decimais– números ordinais (“º” e “ª”)

– números inteiros

Page 33: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: conversão de texto em áudio

• Processa qualquer texto antes da conversão

• Utiliza a voz selecionada para o idioma• Utiliza a biblioteca System.Speech• Faz a conversão de forma assíncrona com

o auxílio da classe BackgroundWorker

Page 34: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: operacionalidade

Page 35: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Implementação: operacionalidade

Page 36: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Resultados e discussão

Page 37: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Conclusões

• Objetivos alcançados

• Importância dos assuntos estudados

• Limitações encontradas

• Principais pontos positivos

Page 38: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Extensões

• Interpretar os componentes de interface que não foram possíveis com a ManagedSpyLib

• Interpretar aplicações desenvolvidas com outra tecnologia

• Utilizar a conversão de texto de forma independente

• Conversão texto-fala em outros idiomas

• Desenvolver módulo de síntese de áudio próprio

Page 39: Ferramenta para conversão texto-fala de aplicações Windows …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-13-AP... · 2012-07-17 · • Interpretar os componentes de interface

Demonstração da ferramenta