Lær din neste Android-app å snakke

Det er utrolig hvor langt databehandling har kommet de siste 10 årene. I 2006 var jeg del av et veldig kostbart og intensivt prosjekt ved NCR for å legge til taleevne til en automatisert tellermaskin. Vi har brukt måneder på å skrive fastvare og integrere tilpasset maskinvare for en håndfull fraser du måtte høre mens du foretar en banktransaksjon. Enda i dag har en hvilken som helst databehandlingsplattform som er verdt å utvikle for sofistikert tekst-til-tale-evne, bakt rett i. Hvis du noen gang har brukt Google Maps sving-for-sving-navigasjon, vet du at Android ikke er noe hinder i denne avdelingen.

Denne opplæringen viser deg hvor enkelt det er å lære Android-appen din å snakke. Følg med på eller last ned og importer prosjektet direkte til Eclipse.

1. Lag et nytt Android-prosjekt i Eclipse. Målrett Android 2.2 eller nyere.

2. I mappen / res / layout må du endre Activity_main.xml for å inkludere en knapp og et redigeringsfelt inne i en relativ layout.

 "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: paddingBottom = "@ dimen / Activity_vertical_margin" android: paddingLeft = "@ dimen / Activity_horizontal_margin" android: paddingRight = "@ dimen / Activity_horizontal_margin" android: paddingTop = "@ dimen / Activity_vertical_margin" verktøy: context = ".MainActivity" > 
android: id = "@ + id / textView1"

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: text = "TTS demonstrasjon" />
android: id = "@ + id / knapp1"

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: layout_below = "@ + id / editText1"

android: layout_centerHorizontal = "true"

android: layout_marginTop = "43dp"

android: text = "Si det" />
 "@ + id / editText1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_below = "@ + id / textView1" android: layout_centerHorizontal = "true" android: layout_marginTop = "77dp" android: ems = "10" android: text = "Hallo verden!" /> 

3. Med oppsettet på plass, kan vi begynne å kode /src/MainActivity.java-filen. Start med å utvide standard Android-aktivitetsklasse og implementere klikk og initialisere grensesnitt. Funksjonen on create vil laste opp layouten vår, instantisere teksten til taletjenesten og koble til knappen.

 MainActivity.java- pakke com.authorwjf.hellotts; 
 import java.util.Locale; 
 import android.os.Bundle; import android.app.Aktivitet; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.Toast; 
 public class MainActivity utvider aktivitets implementeringer OnClickListener, OnInitListener 
 { 
 private TextToSpeech-tts; 
 @Override beskyttet tomrom onCreate (Bundle savedInstanceState) { super .onCreate (savedInstanceState); 

setContentView (R.layout. Activity_main );

tts = new TextToSpeech ( dette, dette ); findViewById (R.id.- knapp1 ) .setOnClickListener ( dette );

}

}

4. La oss se på tilbakeringingen ved initialisering. Denne mekanismen gir oss beskjed om at tekst-til-tale-motoren vår er klar til å gå og er det ideelle stedet å stille inn språket.

 @Override offentlig tomrom onInit ( int- kode) { if (kode == TextToSpeech. SUCCESS ) { 

tts.setLanguage (språk. getDefault ());

} annet {tts = null ; Skål. makeText ( dette, "Kunne ikke initialisere TTS-motoren.",
 Skål. LENGTH_SHORT ) .show (); 

}

}

5. Når tekst-til-tale-motoren er lastet, er vi klar til å håndtere klikkene på brukerknappen.

 @Override public void onClick (Vis v) { if (tts! = Null ) {String text = 
 ((EditText) findViewById (R.id. EditText1)). GetText (). ToString (); if (tekst! = null ) { hvis (! tts.isTalende ()) {tts.speak (tekst, TextToSpeech. QUEUE_FLUSH, null ); 

}

}

}

}

6. Vi må sørge for at vi rydder opp i tekst-til-tale-motoren når applikasjonen slås av. Unnlatelse av å gjøre det kan føre til et brak hvis brukeren plutselig bytter applikasjoner mens motoren er midt i en setning.

 @Override beskyttet tomrom onDestroy () { if (tts! = Null ) { 

tts.stop ();

tts.shutdown ();

}

super .onDestroy (); }

Det er alt det er å gjøre. Last opp APK-en på emulatoren eller en enhet og la den lytte.

Til tross for at standardstemmen høres litt ut som Speak-N-Spell ET pleide å ringe hjem, er uttalene stort sett perfekte. Jeg er ikke tilhenger av alle APIer i Android SDK, men folkene på Google fortjener litt kreditt for denne. Det gir en masse funksjonalitet og krever et minimum av koding.

© Copyright 2021 | pepebotifarra.com