Speak up!
Como criar Speech-based apps
Pedro Silva Santos
Developer Lead, MLDC
[email protected]
Agenda
• O Microsoft Language Development Center (MLDC)
• A Tecnologia de Fala:
– Reconhecimento de fala.
– Síntese de texto-para-fala.
• Desenvolvimento de aplicações Speech (client-side):
– A managed SpeechFX API.
– Desenvolvimento e demos.
• Desenvolvimento de aplicações Speech (server-side):
– Microsoft Office Communications Server 2007: Speech Server.
– Desenvolvimento e demos.
• Downloads públicos e recursos:
– Beta Program + TAP Program
– Bits para Português!
MLDC - Microsoft Language
Development Center, Portugal
•
Criado um Microsoft | Development Center em Portugal
–
–
–
–
–
–
Criação em Novembro de 2005 e início da operação em Março de 2006
http://www.microsoft.com/portugal/mldc
Miguel Dias (Director, FTE) + 10 colaboradores (Engenheiros e Linguistas)
Um dos 4 Centros de Desenvolvimento Microsoft na Europa e o 1º fora de Redmond (EUA)
dedicado ao desenvolvimento local da linguagem.
Expansão do grupo de componentes de processamento de fala da Microsoft, baseado em
Redmond, EUA
Co-suportado pelo PRIME –NITEC
http://www.microsoft.com/portugal/mldc
Missão de longo termo e linhas de
acção do MLDC
Missão de Longo Termo
Expandir o desenvolvimento local das tecnologias
de linguagem na região da EMEA, para um
conjunto de produtos e platformas Microsoft
(Vista, Exchange, Office, Mobilidade, Media
Center, Xbox)
Início na língua Portuguesa
Linhas de Acção :
1. Linhas de cooperação com as universidades e
institutos de I&D mais inovadores em Portugal e na
região da EMEA, nos domínios da fala e da língua
natural
2. Desenvolvimento de recursos e tecnologias da
linguagem em Portugal e na EMEA
3. Participação em projectos de I&D em consórcio nos
programas Nacionais (FCT, PRIME-IDEA, PRIMENITEC) e Europeus (FP7)
A tecnologia de Reconhecimento e
Síntese de Fala
Speech Recognition - SR
• Ou Reconhecimento Automático de Fala.
• Características de um sistema de SR:
– Modos de operação:
• Comando e controlo,
• Ditado (ou fala espontânea)
– Dependência ao falante.
– Adaptação ao falante.
– Principais métricas de avaliação: precisão e velocidade
Speech Recognition
• Como funciona
– Hidden Markov Models: modelos estatísticos baseados em
probabilidades.
– A Fala é uma série de palavras.
– Cada palavra consiste numa série de sons (fonemas).
– Confidence scoring.
Text-to-speech synthesis
Amplitude
Transformar
“É fácil sintetizar fala”
Em
Tempo
Text-to-speech synthesis - TTS
• Síntese de texto para fala.
• Produção artificial de fala humana.
• Tipicamente, convertendo uma representação textual para fala
num formato de audio.
• Como funciona? Técnicas:
–
–
–
–
Concatenative synthesis
Formant
Articulatory
HMMs
• A voice font: a fala do talento de voz armazenado como um
conjunto de segmentos de sons individuais.
Engines and Language Packs
• Microsoft Speech Technology.
• Dois principais core engines:
– O engine de SR.
– O engine de TTS.
– Independentes da língua.
• Speech Language Packs: ficheiros específicos por língua.
• Tipicamente, LPs contêm:
– language-dependent recognizer data.
– language-dependent synthesizer data.
TalkToMe
Desenvolvimento de aplicações
Speech (client-side)
A nova API de Speech
.NET Framework 3
WPF
WCF
WWF
Cardspace
SpeechFX!!
• A API managed SpeechFX.
• O que está no namespace System.Speech:
– System.Speech.Recognition
– System.Speech.Synthesis
• Disponível publicamente no .NET Framework 3.0
A nova API de Speech
• O que já vem no Vista:
– Runtime .NET Framework 3.0, incluindo SpeechFX.
– O reconhecedor de Inglês (Francês, Alemão, Espanhol, Japonês e Chinês
também disponíveis).
– O sintetizador de Inglês – a voz “Anna”.
– O “Windows Speech Recognition User Experience”
• Para XP: download do .NF3.0
System.Speech.Synthesizer
• Como usar?
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
synthesizer.Speak(“Olá mundo!”);
• Inclui suporte para custom spoken pronunciations, standard XML SSML
W3C, gravar output para wave file, alterar velocidade de síntese e volume.
System.Speech.Recognition
• Como usar?
– Construir uma gramática.
– Carregar a gramática no reconhecedor.
– Registar eventos (SpeechRecognized, SpeechHypothesized,
SpeechDetected, …)
– Começar o reconhecimento…!
– Inclui suporte para gramáticas complexas, semantic values,
standard XML SRGS W3C, input de wave file, recognition
confidence value, recognition alternate choices.
System.Speech.Recognition
• Como usar?
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-us"));
void init()
{
Choices pizzaChoices = new Choices();
pizzaChoices.AddPhrase("I'd like a cheese pizza");
pizzaChoices.AddPhrase("I'd like a pepperoni pizza");
pizzaChoices.AddPhrase("I'd like a large pepperoni pizza");
Grammar pizzaGrammar = new Grammar(new GrammarBuilder(pizzaChoices));
recognizer.LoadGrammar(pizzaGrammar);
pizzaGrammar.SpeechRecognized += new EventHandler<RecognitionEventArgs>(PizzaGrammar_SpeechRecognized);
recognizer.Recognize(..);
}
void PizzaGrammar_SpeechRecognized(object sender, RecognitionEventArgs e)
{
MessageBox.Show(e.Result.Text);
}
Speech Sample
RecoTuga
SpeechWiki
Media Center
Speech in Robotics
Microsoft Robotics Studio
• Ambiente de desenvolvimento que permite criar facilmente aplicações para
uma grande variedade de plataformas (robôs).
• Apresenta um ambiente virtual que simula o mundo real!
• Interface muito simples de usar!
• Para experts e para beginners! 
Microsoft Robotics Studio
Microsoft Robotics Studio
Lego MindStorm
1.
2.
3.
4.
5.
6.
32-bit ARM7 microcontroller
Sensor de toque
Sensor de som
Sensor de luz
Sensor de distância
Motores
Lego Mindstorm
Desenvolvimento de aplicações
Speech (server-side)
OCS 2007 Speech Server
• OCS 2007 Speech Server está incluído no
Microsoft® Office Communications Server 2007
• Principais componentes:
–
–
–
–
Authoring and debugging
Reporting, Analysis and Tuning
Telephony
Operations, Administration, Maintenance
Supported Languages
Línguas suportadas: 14 (SR / TTS)
Suporte de SR e TTS:
North American English
UK English
Canadian French
German
American Spanish
Suporte de TTS:
Chinese (Mandarin + Traditional), English (Australia), French
(France), Italian (Italy), Japanese (Japan), Korean (Korea),
Portuguese (Brazil), Spanish (Spain).
Dialog Workflow Designer
InfoService
Global
Commands/Grammar
“Menu Principal”; “Iniciar”;
“Reiniciar”; “Voltar”;
“Terminar”
“Bem-vindo ao serviço
informativo da Microsoft
Portugal”
“Menu Principal. Diga notícias, trânsito ou tempo.”
“Diga [categoria],
pesquisar ou menu
principal.
“Diga o nome do acesso que
deseja consultar, como por
exempo IC19, ou menu
principal.”
“Diga Lisboa, Porto
ou menu principal.”
“IC19. Trânsito
condicionado
no sentido...”
“Lisboa. Condições
actuais..., para amanhã...”
“Diga um ou vários
termos a pesquisar.”
“Escolheu a
categoria Desporto.
Existem 3 notícias
novas. Primeira
notícia...”
“Foram
encontradas 2
notícias contendo
o termo... “
Get the bits!
• Para cliente desktop:
– API SpeechFX no .NET Framework3 (incluído no Vista; download
necessário para XP).
– Language Packs estão incluídos no Vista.
• Para servidor: OCS 2007 Speech Server
– Vários Language Packs estão incluídos.
Language Packs de Português
• MLDC disponibiliza Programas de Avaliação Beta da sua tecnologia.
• LPs Beta para Português Europeu e Brasileiro em:
– Client desktop:
• Reconhecedor de Fala de Português.
– Speech Server:
• Reconhecedor + Sintetizador de Fala de Português.
• Toda a informação em:
– http://www.microsoft.com/portugal/mldc/betaprograms/
• Invitation code: MLDC-BKBY-DTBD
• http://connect.microsoft.com
• [email protected]
Recursos
• Microsoft Language Development Center
– http://www.microsoft.com/portugal/mldc
– Beta Program + Projects + Videos + Demos + News
• MLDC Blog
– http://blogs.msdn.com/tagarela/
• Microsoft Speech
– http://www.microsoft.com/speech/
Recursos
• .NET Framework 3.0 SpeechFX API for client-side speech-development:
– Intro article:
• http://msdn.microsoft.com/msdnmag/issues/06/01/speechinWindowsVista/
– .NET Framework 3.0 runtime download (for XP):
• http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A1483F5-25634C3BF043&displaylang=en
– Managed SpeechFX API Documentation (MSDN):
• http://msdn2.microsoft.com/en-us/library/system.speech.recognition.aspx
• http://msdn2.microsoft.com/en-us/library/system.speech.synthesis.aspx
– “Windows Speech Recognition” User Experience in Windows Vista:
• http://www.microsoft.com/enable/products/windowsvista/speech.aspx
• http://www.microsoft.com/windows/products/windowsvista/features/details/speechrecognitio
n.mspx
• MLDC Client Beta Program:
– http://www.microsoft.com/portugal/mldc/betaprograms/winclientdesktop.ms
px
• MLDC Client Demo Videos:
– http://www.microsoft.com/portugal/mldc/projects/speechapps.mspx
Recursos
• “Microsoft Office Communications Server 2007 Speech Server” for IVR
server-side speech-development:
– Microsoft Office Communications Server 2007 Speech Server Developer Edition
Download:
• http://www.microsoft.com/downloads/details.aspx?FamilyId=BB183640-4B8F-482880C9-E83C3B2E7A2C&displaylang=en
– OCS 2007 Speech Server Documentation (MSDN):
• http://msdn2.microsoft.com/en-us/library/bb857803.aspx
– Books and webcasts are also available.
• MLDC TAP Program:
– http://www.microsoft.com/portugal/mldc/betaprograms/officecomserv07spse
rv.mspx
• MLDC Server Demo Videos:
– http://www.microsoft.com/portugal/mldc/projects/europtconnect.mspx
– http://www.microsoft.com/portugal/mldc/news/feb08_Techdays2008.mspx
http://www.microsoft.com/portugal/mldc/projects/ExchangeServer2007.mspx
www.microsoft.com/portugal/mldc
Download

Speak up! Como criar Speech-based apps