Conversione del parlato in testo: come creare una semplice app di dettatura

Autore: Lewis Jackson
Data Della Creazione: 13 Maggio 2021
Data Di Aggiornamento: 1 Luglio 2024
Anonim
Come trasformare un video o un audio in un documento di testo (gratis e in modo semplice)
Video: Come trasformare un video o un audio in un documento di testo (gratis e in modo semplice)

Contenuto


Molte app, servizi e gadget domestici utilizzano il riconoscimento vocale per fornire una migliore esperienza utente e migliorare l'accessibilità. Esistono innumerevoli app Android che sfruttano il riconoscimento vocale - il più notevole dei quali è Google Assistant - quindi perché non seguire l'esempio e aggiungere questa funzione alle tue applicazioni Android?

In questo articolo, condividerò un modo semplice e veloce per iniziare con l'intento di sintesi vocale di Android, che può essere utile in una vasta gamma di applicazioni. Ad esempio, è possibile utilizzare il riconoscimento vocale per automatizzare l'inserimento manuale noioso di dati, generare automaticamente i sottotitoli o persino come base per un'app di traduzione che "ascolta" l'input vocale, lo converte in testo, quindi traduce questo testo e visualizza i risultati in l'utente.

Indipendentemente dal tipo di applicazione che crei, il riconoscimento vocale può migliorare l'accessibilità fornendo agli utenti un modo alternativo per interagire con la tua app. Ad esempio, le persone con problemi di mobilità, destrezza o vista possono trovare più facile navigare tra le applicazioni mobili usando i comandi vocali, piuttosto che il touchscreen o la tastiera. Inoltre, secondo l'Organizzazione mondiale della sanità (OMS), oltre un miliardo di persone ha una qualche forma di disabilità, che equivale a circa il 15% della popolazione mondiale. L'aggiunta di funzionalità di accessibilità alle tue applicazioni può aumentare significativamente il tuo potenziale pubblico.


Alla fine di questo articolo, avrai creato una semplice applicazione Speech-to-Text che registra la tua voce, la converte in testo e quindi visualizza quel testo sullo schermo.

Creazione di un'interfaccia utente Speech-to-Text

Per iniziare, crea un nuovo progetto Android utilizzando il modello "Svuota attività".

Creeremo una semplice applicazione che consiste in un pulsante che, una volta toccato, attiva l'intento di sintesi vocale di Android e visualizza una finestra di dialogo che indica che l'app è pronta per accettare l'input vocale. Una volta che l'utente ha terminato di parlare, il loro input verrà convertito in testo e quindi visualizzato come parte di un TextView.

Iniziamo creando il nostro layout:

Questo ci dà il seguente layout:


Aggiunta del riconoscimento vocale alla tua app Android

Acquisiamo ed elaboriamo l'input vocale in due passaggi:

1. Avviare RecognizerIntent

Il modo più semplice per eseguire la conversione da sintesi vocale a testo è utilizzare RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Questo Intento richiede all'utente l'immissione vocale avviando la familiare finestra di dialogo del microfono di Android.

Una volta che l'utente smette di parlare, la finestra di dialogo si chiuderà automaticamente e ACTION_RECOGNIZE_SPEECH invierà l'audio registrato tramite un riconoscimento vocale.

Iniziamo RecognizerIntent.ACTION_RECOGNIZE_SPEECH utilizzando startActivityForResult () con extra in bundle. Tieni presente che, se non diversamente specificato, il riconoscitore utilizzerà le impostazioni internazionali predefinite del dispositivo.

public void onClick (Visualizza v) {// Attiva l'intento RecognizerIntent // Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); provare {startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}

2. Ricezione della risposta vocale

Una volta completata l'operazione di riconoscimento vocale, ACTION_RECOGNIZE_SPEECH invierà i risultati all'attività chiamante come una matrice di stringhe.

Poiché abbiamo attivato RecognizerIntent tramite startActivityForResult (), gestiamo i dati dei risultati sovrascrivendo onActivityResult (int requestCode, int resultCode, Intent data) nell'attività che ha avviato la chiamata di riconoscimento vocale.

I risultati vengono restituiti in ordine decrescente di affidabilità del riconoscimento vocale. Quindi, per essere sicuri che stiamo visualizzando il testo più accurato, dobbiamo prendere la posizione zero dall'ArrayList restituito, quindi visualizzarlo nel nostro TextView.

@Override // Definire un metodo OnActivityResult nel nostro chiamante intento Attività // void protetto onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Se RESULT_OK viene restituito ... // if (resultCode == RESULT_OK && null! = data) {//... quindi recuperare ArrayList // ArrayList risultato = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Aggiorna il nostro TextView // textOutput.setText (result.get (0)); } rompere; }}}}

Tieni presente che la sintesi vocale non richiede una connessione Internet attiva, quindi funzionerà correttamente anche quando l'utente è offline.

Dopo aver completato tutti i passaggi precedenti, MainActivity dovrebbe assomigliare a questo:

import android.content.ActivityNotFoundException; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.content.Intent; import android.speech.RecognizerIntent; import android.widget.TextView; import android.view.View; import java.util.ArrayList; classe pubblica MainActivity estende AppCompatActivity {private static final int REQUEST_CODE = 100; private TextView textOutput; @Override protetto void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Questo metodo viene chiamato con il pulsante premuto // public void onClick (Visualizza v) // Crea un intento con l'azione "RecognizerIntent.ACTION_RECOGNIZE_SPEECH" // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); prova {// Avvia l'attività e attendi la risposta // startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Gestisce i risultati // void protetto onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList risultato = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } rompere; }}}}

Puoi scaricare il progetto completato da GitHub.

Testare il tuo progetto

Per mettere alla prova la tua applicazione:

  • Installa il tuo progetto su un dispositivo Android fisico o un dispositivo virtuale Android (AVD). Se stai utilizzando un AVD, la tua macchina di sviluppo deve disporre di un microfono incorporato oppure puoi utilizzare un microfono o un auricolare esterni.
  • Tocca il pulsante "Avvia dettatura" dell'applicazione.
  • Quando viene visualizzata la finestra di dialogo del microfono, parla nel tuo dispositivo. Dopo alcuni istanti, le tue parole dovrebbero apparire sullo schermo.

Avvolgendo

In questo articolo, abbiamo visto come aggiungere rapidamente e facilmente il riconoscimento vocale alle tue applicazioni Android, usando l'intento di sintesi vocale. Hai incontrato app Android che utilizzano il riconoscimento vocale in modi sorprendenti o innovativi?

Il prossimo: Crea un'app Android in realtà aumentata con Google ARCore

Il amung Galaxy Fold occupa una poizione unica ul mercato in queto momento: è l'unico vero martphone pieghevole. Huawei Mate X è ul ponte per raggiungere il mercato ucceivo, ma fino a qu...

La privacy digitale è un argomento caldo. iamo entrati in un'era in cui quai tutti portano un dipoitivo conneo. Tutti hanno una macchina fotografica. Molte delle notre attività quotidian...

Assicurati Di Guardare