Spraak naar tekst converteren: een eenvoudige dicteer-app maken

Schrijver: Lewis Jackson
Datum Van Creatie: 13 Kunnen 2021
Updatedatum: 1 Juli- 2024
Anonim
🔉 How to Convert Audio to Text - FREE & No Time Limits
Video: 🔉 How to Convert Audio to Text - FREE & No Time Limits

Inhoud


Veel apps, services en huishoudelijke gadgets gebruiken spraakherkenning om een ​​betere gebruikerservaring te bieden en de toegankelijkheid te verbeteren. Er zijn talloze Android-apps die gebruikmaken van spraakherkenning - de meest opvallende daarvan is Google Assistant - dus waarom niet volgen en deze functie toevoegen aan uw eigen Android-applicaties?

In dit artikel deel ik een snelle en eenvoudige manier om aan de slag te gaan met de spraak-naar-tekst-intentie van Android, die nuttig kan zijn in een breed scala aan toepassingen. U kunt bijvoorbeeld spraakherkenning gebruiken om vervelende handmatige gegevensinvoer te automatiseren, automatisch ondertitels te genereren, of zelfs als basis voor een vertaalapp die "luistert" naar gesproken invoer, deze omzet in tekst, deze tekst vertaalt en de resultaten weergeeft in de gebruiker.

Ongeacht het soort toepassing dat u maakt, spraakherkenning kan de toegankelijkheid verbeteren door gebruikers een alternatieve manier te bieden om met uw app te communiceren. Mensen met mobiliteits-, behendigheids- of zichtproblemen kunnen het bijvoorbeeld gemakkelijker vinden om door mobiele applicaties te navigeren met behulp van spraakopdrachten in plaats van het touchscreen of toetsenbord. Bovendien hebben volgens de Wereldgezondheidsorganisatie (WHO) meer dan een miljard mensen een vorm van handicap, wat neerkomt op ongeveer 15% van de wereldbevolking. Het toevoegen van toegankelijkheidsfuncties aan uw applicaties kan uw potentiële publiek aanzienlijk vergroten.


Tegen het einde van dit artikel hebt u een eenvoudige spraak-naar-tekst-applicatie gemaakt die uw stem opneemt, deze omzet in tekst en die tekst vervolgens op het scherm weergeeft.

Een gebruikersinterface voor spraak naar tekst bouwen

Maak om te beginnen een nieuw Android-project met behulp van de sjabloon 'Lege activiteit'.

We gaan een eenvoudige applicatie maken die bestaat uit een knop die, wanneer erop wordt getikt, de intentie van Speech-to-Text van Android activeert en een dialoogvenster weergeeft dat aangeeft dat uw app klaar is om spraakinvoer te accepteren. Nadat de gebruiker is uitgesproken, wordt zijn invoer omgezet in tekst en vervolgens weergegeven als onderdeel van een TextView.

Laten we beginnen met het maken van onze lay-out:

Dit geeft ons de volgende lay-out:


Spraakherkenning toevoegen aan uw Android-app

We vangen en verwerken spraakinvoer in twee stappen:

1. Start RecognizerIntent

De eenvoudigste manier om spraak-naar-tekst-conversie uit te voeren, is door RecognizerIntent.ACTION_RECOGNIZE_SPEECH te gebruiken. Deze intentie vraagt ​​de gebruiker om vocale invoer door het vertrouwde microfoondialoogvenster van Android te starten.

Zodra de gebruiker stopt met praten, wordt het dialoogvenster automatisch gesloten en stuurt ACTION_RECOGNIZE_SPEECH de opgenomen audio via een spraakherkenner.

We starten RecognizerIntent.ACTION_RECOGNIZE_SPEECH met startActivityForResult () met gebundelde extra's. Houd er rekening mee dat, tenzij anders aangegeven, de herkenner de standaardlandinstelling van het apparaat gebruikt.

public void onClick (View v) {// Trigger the RecognizerIntent intent // Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); probeer {startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}

2. De spraakreactie ontvangen

Zodra de spraakherkenningsbewerking is voltooid, stuurt ACTION_RECOGNIZE_SPEECH de resultaten terug naar de aanroepende activiteit als een array van tekenreeksen.

Omdat we de RecognizerIntent hebben geactiveerd via startActivityForResult (), verwerken we de resultaatgegevens door onActivityResult (int requestCode, int resultCode, Intent data) te overschrijven in de activiteit die de spraakherkenningsoproep heeft gestart.

Resultaten worden geretourneerd in afnemende volgorde van het vertrouwen van de spraakherkenner. Om er zeker van te zijn dat we de meest nauwkeurige tekst weergeven, moeten we de nulpositie uit de geretourneerde ArrayList nemen en deze vervolgens weergeven in onze TextView.

@Override // Definieer een OnActivityResult-methode in onze intentie aanroeper activiteit // beschermde ongeldige onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Als RESULT_OK wordt geretourneerd ... // if (resultCode == RESULT_OK && null! = data) {//... haal dan de ArrayList // ArrayList op result = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Update onze TextView // textOutput.setText (result.get (0)); } pauze; }}}}

Houd er rekening mee dat spraak naar tekst geen actieve internetverbinding vereist, dus het werkt correct, zelfs wanneer de gebruiker offline is.

Na het voltooien van alle bovenstaande stappen zou uw MainActivity er ongeveer zo uit moeten zien:

android.content.ActivityNotFoundException importeren; androidx.appcompat.app.AppCompatActivity importeren; android.os.bundle importeren; android.content.Intent importeren; android.speech.RecognizerIntent importeren; android.widget.TextView importeren; android.view.View importeren; java.util.ArrayList importeren; openbare klasse MainActivity breidt AppCompatActivity uit {private static final int REQUEST_CODE = 100; privé TextView textOutput; @Override beschermde nietig onCreate (bundle saveInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Deze methode wordt aangeroepen met de knop ingedrukt // publieke ongeldig op Click (View v) // Creëer een Intent met “RecognizerIntent.ACTION_RECOGNIZE_SPEECH” actie // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); probeer {// Start de activiteit en wacht op het antwoord // startActivityForResult (intentie, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Omgaan met de resultaten // beschermde ongeldige onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList result = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } pauze; }}}}

Je kunt het voltooide project downloaden van GitHub.

Uw project testen

Om uw aanvraag op de proef te stellen:

  • Installeer uw project op een fysiek Android-apparaat of een Android Virtual Device (AVD). Als u een AVD gebruikt, moet uw ontwikkelmachine een ingebouwde microfoon hebben of u kunt een externe microfoon of headset gebruiken.
  • Tik op de knop 'Start dicteren'.
  • Wanneer het dialoogvenster met de microfoon verschijnt, spreekt u in uw apparaat. Na enkele ogenblikken moeten uw woorden op het scherm verschijnen.

Afsluiten

In dit artikel hebben we gezien hoe u snel en eenvoudig spraakherkenning aan uw Android-toepassingen kunt toevoegen, met behulp van de intentie Speech-to-Text. Ben je Android-apps tegengekomen die spraakherkenning op verrassende of innovatieve manieren gebruiken?

Volgende: Bouw een augmented reality Android-app met Google ARCore

Het Chinee merk Doogee heeft de Doogee 90 gelanceerd.De telefoon i compatibel met verchillende add-on module en heeft een robuut ontwerp.Vroege financier kunnen de telefoon krijgen vanaf $ 299.Doogee ...

Bezorgervice voor eten DoorDah heeft bevetigd dat gegeven van 4,7 miljoen klanten, werknemer en handelpartner zijn aangetat.De inbreuk werd openbaar gemaakt via een officiële blogpot. DoorDah hee...

De Meest Lezen