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