Convertendo fala em texto: como criar um aplicativo de ditado simples

Autor: Lewis Jackson
Data De Criação: 13 Poderia 2021
Data De Atualização: 1 Julho 2024
Anonim
CONVERTING AUDIO TO TEXT (No FREE Program)
Vídeo: CONVERTING AUDIO TO TEXT (No FREE Program)

Contente


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 resultado = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Atualiza nosso TextView // textOutput.setText (result.get (0)); } pausa; }}}}

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 resultado = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } pausa; }}}}

Você pode baixar o projeto concluído no GitHub.

Testando seu projeto

Para colocar seu aplicativo à prova:

  • Instale seu projeto em um dispositivo Android físico ou em um Dispositivo Virtual Android (AVD). Se você estiver usando um AVD, sua máquina de desenvolvimento deve ter um microfone embutido ou você pode usar um microfone ou fone de ouvido externo.
  • Toque no botão "Iniciar ditado" do aplicativo.
  • Quando a caixa de diálogo do microfone aparecer, fale no seu dispositivo. Após alguns instantes, suas palavras devem aparecer na tela.

Empacotando

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 ARCore

É muito provável que veremo um iPhone 5G com tecnologia Qualcomm em 2020 ou poivelmente em 2021. abemo dio porque a Apple encerrou todo o proceo contra a Qualcomm e ainou um contrato de ei a...

O ruído branco (e o ruído roa) é um método popular para induzir o ono. O ruído branco é um inal aleatório com intenidade igual em vária frequência. Io par...

Publicações.