Contente
- Construindo uma interface de usuário de fala para texto
- Adicionando reconhecimento de fala ao seu aplicativo Android
- 1. Inicie RecognizerIntent
- 2. Recebendo a resposta da fala
- Testando seu projeto
- Empacotando
Muitos aplicativos, serviços e gadgets domésticos usam o reconhecimento de fala para fornecer uma melhor experiência ao usuário e melhorar a acessibilidade. Existem inúmeros aplicativos Android que fazem uso do reconhecimento de fala - o mais notável é o Google Assistant -, por que não seguir o exemplo e adicionar esse recurso aos seus próprios aplicativos Android?
Neste artigo, compartilharei uma maneira rápida e fácil de começar com a intenção de fala para texto do Android, que pode ser útil em uma ampla variedade de aplicativos. Por exemplo, você pode usar o reconhecimento de fala para automatizar a entediante entrada manual de dados, gerar automaticamente legendas ou mesmo como base para um aplicativo de tradução que "escute" a entrada vocal, a converta em texto, depois a traduza em texto e depois traduza esse texto e exiba os resultados para o usuário.
Independentemente do tipo de aplicativo criado, o reconhecimento de fala pode melhorar a acessibilidade, fornecendo aos usuários uma maneira alternativa de interagir com seu aplicativo. Por exemplo, pessoas com problemas de mobilidade, destreza ou visão podem achar mais fácil navegar em aplicativos móveis usando comandos de voz, em vez da tela sensível ao toque ou teclado. Além disso, de acordo com a Organização Mundial de Saúde (OMS), mais de um bilhão de pessoas têm algum tipo de deficiência, o que equivale a cerca de 15% da população mundial. Adicionar recursos de acessibilidade a seus aplicativos pode aumentar significativamente seu público potencial.
No final deste artigo, você criou um aplicativo simples de Fala para texto que grava sua voz, converte-a em texto e depois exibe esse texto na tela.
Construindo uma interface de usuário de fala para texto
Para começar, crie um novo projeto Android usando o modelo "Atividade vazia".
Criaremos um aplicativo simples que consiste em um botão que, quando tocado, aciona a intenção de fala para texto do Android e exibe uma caixa de diálogo indicando que seu aplicativo está pronto para aceitar a entrada de fala. Quando o usuário terminar de falar, suas entradas serão convertidas em texto e exibidas como parte de um TextView.
Vamos começar criando nosso layout:
Isso nos dá o seguinte layout:
Adicionando reconhecimento de fala ao seu aplicativo Android
Capturamos e processamos a entrada de fala em duas etapas:
1. Inicie RecognizerIntent
A maneira mais fácil de realizar a conversão de fala em texto é usar RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Esse objetivo solicita ao usuário a entrada vocal, iniciando a familiar caixa de diálogo do microfone do Android.
Quando o usuário parar de falar, a caixa de diálogo será fechada automaticamente e ACTION_RECOGNIZE_SPEECH enviará o áudio gravado através de um reconhecedor de fala.
Iniciamos RecognizerIntent.ACTION_RECOGNIZE_SPEECH usando startActivityForResult () com extras incluídos no pacote. Observe que, a menos que especificado de outra forma, o reconhecedor usará a localidade padrão do dispositivo.
public void onClick (Exibir v) {// Dispara a intenção RecognizerIntent // Intenção intenção = nova Intenção (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); try {startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}
2. Recebendo a resposta da fala
Depois que a operação de reconhecimento de fala estiver concluída, ACTION_RECOGNIZE_SPEECH enviará os resultados de volta à atividade de chamada como uma matriz de seqüências de caracteres.
Como acionamos o RecognizerIntent via startActivityForResult (), manipulamos os dados do resultado substituindo onActivityResult (int requestCode, int resultCode, Intent data) na atividade que iniciou a chamada de reconhecimento de fala.
Os resultados são retornados em ordem decrescente de confiança do reconhecedor de fala. Portanto, para exibir o texto mais preciso, precisamos assumir a posição zero no ArrayList retornado e exibi-lo em nosso TextView.
@Override // Define um método OnActivityResult em nosso chamador de intenção Activity // protegido void onActivityResult (int requestCode, int resultCode, dados de intenção) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Se RESULT_OK for retornado ... // if (resultCode == RESULT_OK && null! = data) {// ... em seguida, recupere o ArrayList // ArrayList Observe que a conversão de texto em texto não requer uma conexão ativa com a Internet; portanto, funcionará corretamente mesmo quando o usuário estiver offline. Depois de concluir todas as etapas acima, sua MainActivity deve ficar assim: importar android.content.ActivityNotFoundException; importar androidx.appcompat.app.AppCompatActivity; importar android.os.Bundle; importar android.content.Intent; importar android.speech.RecognizerIntent; importar android.widget.TextView; importar android.view.View; importar java.util.ArrayList; classe pública MainActivity estende AppCompatActivity {final estático privado int REQUEST_CODE = 100; private TextView textOutput; @Override void protegido onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Este método é chamado com o botão pressionado // public void onClick (View v) // Crie uma intenção com a ação “RecognizerIntent.ACTION_RECOGNIZE_SPEECH” // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); try {// Inicie a atividade e aguarde a resposta // startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Manipula os resultados // protegido void onActivityResult (int requestCode, int resultCode, dados Intent) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList Você pode baixar o projeto concluído no GitHub. Para colocar seu aplicativo à prova: Neste artigo, vimos como você pode adicionar rápida e facilmente reconhecimento de fala aos seus aplicativos Android, usando a intenção de fala em texto. Você encontrou aplicativos Android que usam reconhecimento de fala de maneiras surpreendentes ou inovadoras? Próximo: Crie um aplicativo Android de realidade aumentada com o Google ARCoreTestando seu projeto
Empacotando