Ferramenta para conversão texto-fala de aplicações Windows...
Transcript of Ferramenta para conversão texto-fala de aplicações Windows...
Ferramenta para conversão texto-fala de aplicações Windows
FormsAcadêmico: Fernando Erhardt
Orientadora: Joyce Martins
Roteiro
• Introdução• Objetivos• Fundamentação teórica• Desenvolvimento da ferramenta• Conclusão• Extensões
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
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
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
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
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
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
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)
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
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
Especificação: Requisitos
Não funcionais:• funcionar com o sistema operacional Windows XP ou
superior
• utilizar a linguagem de programação C#
Especificação: relação de componentes
• Componentes do framework:
TabControlListViewDomainUpDown
TreeViewSplitContainerListBoxDateTimePicker
TrackBarRadioButtonLinkLabelComboBox
TextBoxProgressBarLabelCkeckedListBox
TabPagePanelGroupBoxCheckBox
TableLayoutContainerNumericBoxFlowLayoutPanelButton
ComponenteComponenteComponenteComponente
• Componentes criados pelo usuário
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
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
Especificação: dicionário de siglas
• Exemplo de algumas siglas em inglês:
New YorkNYTelevisionTV
Re-writableRWDvdDVD
CdCDUnited States of AmericaUSA
Forma extensaSiglaForma extensaSigla
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
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
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
Especificação: Diagrama de casos de uso
Especificação: Diagrama de classes
Especificação: Diagrama de classes
Especificação: Diagrama de classes
Especificação: Diagrama de classes
Especificação: Diagrama de classes
Implementação: técnicas e ferramentas utilizadas
• Linguagem C#
• Visual Studio
• Voz em português “Nuance Raquel Brazilian Portuguese Female 22khz”
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
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
Implementação: processamento de texto
• Etapas:– substituir abreviações
– substituir siglas– substituir datas
– substituir números– substituir pronúncias diferenciadas
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
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
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
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
Implementação: operacionalidade
Implementação: operacionalidade
Resultados e discussão
Conclusões
• Objetivos alcançados
• Importância dos assuntos estudados
• Limitações encontradas
• Principais pontos positivos
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
Demonstração da ferramenta