Tutorial Android Speech

Documentos relacionados
Programação de Dispositivos Móveis

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

Programação para Dispositivos Móveis

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Android Banco de Dados. Ivan Nicoli

PROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB

Programação de Dispositivos Móveis

Android Layout Manager. Ivan Nicoli

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho

Módulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

Primeira Aplicação Android Olá Mundo. Prof. Fellipe Aleixo

Programação para Android. Aula 08: Persistência de dados SQL

Programa de Dispositivos Móveis

Programa de Dispositivos Móveis

HCI Summer Workshop. Android #1. Tiago Guerreiro.

Google Android. Componentes Gráficos

Comunicação entre A0vidades

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android

Log, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Módulo 3 - Intenções. SECAP 2014 Prof. Rone Ilídio - UFSJ

Desenvolvimento Android.

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Introdução ao Desenvolvimento para Sistema Operacional Android

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

Google Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai, Diogo Carleto, erodrigo Cascarrolho

Programação para Android. Aula 06: Activity, menus e action bar

Computação Móvel Conceitos Básicos do Android Ref. Capítulo 3

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

Introdução à Programação Android

Computação Móvel Activity (Ref. Cap. 4)

ANDROID APRENDIZ. Um guia para iniciantes Crie seu primeiro aplicativo Android

Programação para a Plataforma Android Aula 7. Mul$mídia

Views Interface Gráfica

PROGRAMAÇÃO COM ANDROID NA ÁREA DA ENGENHARIA CARTOGRÁFICA: ALGUNS EXEMPLOS

Programação para Dispositivos Móveis

Android I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K

«Out of sync» Re-encontramo-nos na edição de Fevereiro! Até lá...

AULA 2. Minicurso PET-EE UFRN

Computação Móvel ActionBar e Temas (Ref. Cap. 5)

Programando Passo-a-Passo 2ª Edição De : Luciano Alves (lucianopascal@yahoo.com.br)

6ª Edição. De : Luciano Alves da Silva (lucianopascal@yahoo.com.br) ApostilaDeAndroid. Rio de Janeiro - Outubro 2013

Google Android. Intents

Comunicação via Sockets

Programação para a Plataforma Android Aula 17. Broadcasts

GUIA DE INTEGRAÇÃO APP2APP APLICATIVO PAGSEGURO 1. Guia de Integração App2App Aplicativo PagSeguro VERSÃO 1.0.0

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android

Introdução ao Android

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos

Exemplo de Aplicaça o Facebook

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android

Armazenamento Persistente de Dados

Programação para a Plataforma Android Aula 11. Banco de Dados

Desenvolvimento Android. Pontapé inicial...

CONTROLE DE RECEITAS E DESPESAS PARA DISPOSITIVOS ANDROID

Interfaces no Android : widgets. Continuação

Construindo layouts complexos em Android

Programação para Android

Provedores de Conteúdo

ESPECIFICAÇÃO TÉCNICA CIELO MOBILE CAIXA RÁPIDO. Julho de 2015

Introdução ao Android

Android: Ciclo de vida da Activity

Programa de Dispositivos Móveis

COMPUTAÇÃO MÓVEL. Prof. M.Sc Sílvio Bacalá Jr

Interfaces Gráficas parte 3

Nelson Glauber de Vasconcelos Leal

Android e Facebook. Felipe Silveira

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

Desenvolvimento de aplicações na plataforma Google Android

Definições de Projeto

Curso de Android. Fevereiro de Cristiano Expedito Ribeiro Fabrício Firmino de Faria

Apostila de. Programando Passo a Passo 3ª Edição. De : Luciano Alves da Silva (lucianopascal@yahoo.com.br)

De : Luciano Alves da Silva (lucianopascal@yahoo.com.br) Rio de Janeiro Agosto 2012

Programação para Android

Android. Interfaces: widgets

Apostila de. Programando Passo a Passo 3ª Edição. De : Luciano Alves da Silva (lucianopascal@yahoo.com.br)

O que é computação Móvel. Acesso à informação a qualquer lugar, a qualquer momento.

Apostila de programação para Android

TELA PRINCIPAL DO PROJETO FCV

DISTRIBUIÇÃO DE CONTEÚDO COM BASE EM LOCALIZAÇÃO POR LEANDRO DA CUNHA CAMPOS MONOGRAFIA DE FINAL DE CURSO

ESPECIFICAÇÃO TÉCNICA CIELO MOBILE CHAMADA EXTERNA. Maio de 2015

Android Básico Hello World!

Introdução ao Google Android

Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil

INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. ADS 6º Período

Computação II Orientação a Objetos

Introdução ao Desenvolvimento de Aplicativos Android

Transcrição:

Tutorial Android Speech O sistema operacional Android já dispõe de uma funcionalidade interna para síntese e reconhecimento de voz que pode ser incorporado a qualquer aplicação. Essa funcionalidade utiliza os servidores do Google para executar o reconhecimento e também pode ser utilizada offline utilizando um pacote de dados previamente baixado. Neste tutorial será desenvolvido um app simples que faz o reconhecimento de voz. Por isso será necessário passar pelas fases de desenvolvimento do layout. Pré-requisitos: ambiente de desenvolvimento Eclipse configurado e funcional e conhecimento do Android SDK e plugin ADT. Recomenda-se, como requisito, a leitura dos tutoriais SDK Android e Tutorial activity views. Passo 1: Crie um novo projeto no Eclipse em Arquivo -> Novo -> Projeto de Aplicação Android. Passo 2: Nosso layout deverá conter um botão para iniciar o reconhecimento de voz e um campo de texto com a resposta do servidor. Vá na pasta layout, abra o arquivo activity_main.xml e substitua o conteúdo do arquivo com o código abaixo: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"

tools:context=".mainactivity" > <TextView android:id="@+id/welcome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="30sp" android:layout_gravity="center" android:text="speech Recognotion" /> <Button android:id="@+id/start_reg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="start Speech Recognition" /> <TextView android:id="@+id/speech" android:textsize="25sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </LinearLayout> Crie outro arquivo na mesma pasta com o nome dialog_matches_frag.xml. Este design será utilizado para uma caixa de diálogo contendo opções de texto que podem corresponder ao que foi dito ao app. O código do design está escrito abaixo. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> Passo 3: Com o design pronto, vamos à nossa classe MainActivity criar a conexão com as telas e com o servidor. A primeira mudança é que MainActivity agora estende Activity e não ActionBarActivity. Não se esqueça de fazer os imports necessários.

Passo 4: Adicione as seguintes variáveis à classe MainActivity. Elas servirão para interagir com a interface do usuário. Não se esqueça de realizar todos os imports sugeridos pelo Eclipse. Passo 5: Antes de alterar os métodos oncreate, oncreateoptionsmenu e onoptionsitemselected, criados automaticamente pelo Eclipse, vamos criar um método isconnected do tipo boolean. Esse método verificará se o sistema está conectado na internet, necessária para o funcionamento do reconhecimento de voz. Aproveite para realizar todos os imports sugeridos pelo Eclipse. A próxima imagem demonstra o que deve ser colocado na classe: Passo 6: Agora vamos trabalhar nos métodos com anotações criados automaticamente pelo Eclipse. O primeiro deles é o método oncreate do tipo void. Aqui vamos trabalhar com o layout, adicione as duas linhas de código abaixo: Start = (Button)findViewById(R.id.start_reg); Speech = (TextView)findViewById(R.id.speech); Em seguida será necessário criar uma forma de reconhecer que o botão foi pressionado e executar uma ação, adicione o código abaixo no método oncreate para tal. O método todo deverá ficar assim ao final:

Passo 7: Por fim precisaremos dos nossos resultados, para isso criaremos um método chamado onactivityresult. O código desse método está abaixo: Passo 8: O último passo é pedir permissão para que possamos acessar a internet. Para isso procure o arquivo AndroidManifest.xml dentro da pasta res. Abra o arquivo e adicione as seguintes linhas abaixo na posição indicada na imagem: <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state" />

Passo 9: Agora você deve rodar o código utilizando um dispositivo Android ou emulador. O resultado é demonstrado na tela a seguir. O código completo da classe MainActivity está logo abaixo. package com.ufpimaps.androidspeechrecognition;

import java.util.arraylist; import android.net.connectivitymanager; import android.net.networkinfo; import android.os.bundle; import android.app.activity; import android.app.dialog; import android.content.context; import android.content.intent; import android.speech.recognizerintent; import android.view.view; import android.view.view.onclicklistener; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.button; import android.widget.listview; import android.widget.textview; import android.widget.toast; public class MainActivity extends Activity { private static final int REQUEST_CODE = 1234; Button Start; TextView Speech; Dialog match_text_dialog; ListView textlist; ArrayList<String> matches_text; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); Start = (Button)findViewById(R.id.start_reg); Speech = (TextView)findViewById(R.id.speech); Start.setOnClickListener(new OnClickListener() { public void onclick(view v) { if(isconnected()){ Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putextra(recognizerintent.extra_language_model, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); startactivityforresult(intent, REQUEST_CODE); else{ Toast.makeText(getApplicationContext(), "Plese Connect to Internet", Toast.LENGTH_LONG).show(); ); public boolean isconnected() {

ConnectivityManager cm = (ConnectivityManager) getsystemservice(context.connectivity_service); NetworkInfo net = cm.getactivenetworkinfo(); if (net!=null && net.isavailable() && net.isconnected()) { return true; else { return false; protected void onactivityresult(int requestcode, int resultcode, Intent data) { if (requestcode == REQUEST_CODE && resultcode == RESULT_OK) { match_text_dialog = new Dialog(MainActivity.this); match_text_dialog.setcontentview(r.layout.dialog_matches_frag); match_text_dialog.settitle("select Matching Text"); textlist = (ListView)match_text_dialog.findViewById(R.id.list); matches_text = data.getstringarraylistextra(recognizerintent.extra_results); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, matches_text); textlist.setadapter(adapter); textlist.setonitemclicklistener(new AdapterView.OnItemClickListener() { public void onitemclick(adapterview<?> parent, View view, int position, long id) { Speech.setText("You have said " +matches_text.get(position)); match_text_dialog.hide(); ); match_text_dialog.show(); super.onactivityresult(requestcode, resultcode, data);