Create en tekst til tale app med Swift
33
Del
18
Del
Dette Cyber Monday Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Med utgivelsen av iOS 7, introduserte Apple en tekst til tale API som lar utviklere å legge til tekst til tale-funksjonalitet til et program på en rask og enkel måte. Dette kan være nyttig når du legger til et tilgjengelighets lag til et program eller til å ta det som en funksjon i et læringsspill. I denne opplæringen vil du lære hvordan å implementere en slik funksjon ved hjelp av Swift.
1 Innledning
.
I denne opplæringen vil du lære hvordan å lage en mobilapplikasjon bruker Swift og Xcode 6. Enten du er kjent med Xcode eller ikke, vil denne opplæringen hjelpe deg å bli komfortabel med Apples IDE og Swift programmeringsspråk. Med søknaden, vil brukeren kunne initialisere tekst til tale-funksjonalitet ved å trykke på en knapp på skjermen. Brukeren kan redigere målet teksten i en tekstvisning
I denne opplæringen vil du lære om følgende aspekter av iOS utvikling.
lage et brukergrensesnitt i Interface Builder
koble elementene i brukergrensesnittet ved hjelp av utsalgs
trigger metoder i brukergrensesnittet ved hjelp av handlinger
2 . Prosjektet Setup
Trinn 1: Prosjekt Mal
Åpne Xcode og velg New > Prosjekt ...
fra Fil
menyen. Velg Enkel visning Application
fra listen over iOS Applikasjons
maler og klikk Neste
.
Trinn 2 : Prosjekt Configuration
navn prosjektet, skriver organisasjonens navn og identifikator. Velg iPhone
fra Enheter
listen, klikker du Neste
, og velge hvor du vil lagre prosjektet. Ikke glem å endre språket til Swift
.
3. Brukergrensesnitt
Brukergrensesnittet i appen er grei. Skjermbildet nedenfor gir deg en idé om kunstverket vi skal bruke, og hvordan den endelige brukergrensesnittet vil ende opp som ser. Du kan finne illustrasjoner og tilleggsressurser i opplæringen sin kildefilene på GitHub
Trinn 1:. Legg Tekstvisning
La oss lage tekstvisning som skal inneholde teksten programmet vil konvertere til lyd . Åpne Main.storyboard Hotell og dra en UITextView objekt fra Object Library
på visningen kontrolleren syn. Du kan endre tekstvisning standardtekst eller la det stå tomt
Trinn 2:. Legg Button
En knapp i brukergrensesnittet vil utløse tekst til tale-funksjonalitet. Dra og slipp en UIButton objekt fra Object Library
på visningen kontrolleren syn. Du kan endre knappens tittel eller endre utseendet ved å legge til et bilde i Attributter Inspector
.
4. Import AVFoundation
Hvis du vil bruke tekst til tale API, trenger vi tilgang til AVSpeechSynthesizer klassen, som er en del av AVFoundation
rammeverk. Velg prosjekt i Xcode og gå til Koblede Rammer og biblioteker
delen på bunnen av kategorien Generelt
. Klikk på pluss-knappen og velg AVFoundation
ramme fra listen.
Åpne ViewController.swift Hotell og legge til følgende kode rett under import UIKit linje. Anmeldelser import AVFoundation
Dette vil gjøre klassene av AVFoundation
rammeverket tilgjengelig i ViewController klasse, noe som gir oss tilgang til AVSpeechSynthesizer klasse som vi trenger i en liten stund.
5. Tekstvisning Outlet
For å få tilgang til tekstvisning i ViewController klasse, må vi opprette en stikkontakt og wire det opp i Interface Builder. En stikkontakt er en eiendom som du kan sette i Interface Builder.
Åpne Assistent Editor
ved å velge Assistent Editor
fra Vis
menyen. Den lar oss vise brukergrensesnittet til ViewController klasse på venstresiden og gjennomføringen til høyre. Sørg Xcode viser ViewController.swift
filen til høyre.
I Interface Builder
, skape et utløp for tekstvisning av kontroll-dra fra teksten utsikt til kode editor til høyre. Du vil merke en blå linje, som angir hvor Xcode vil sette utløp for tekstvisning.
Når du slipper museknappen, vil Xcode vise deg en dialogboks der du kan angi navn for uttaket. Navngi utløp textView og klikk Koble
.
Du kan gjenkjenne uttak avIBOutlet kompilatoren direktivet. Dette forteller kompilatoren at textView er en referanse til UITextView objektet vi opprettet i Interface Builder. Dette betyr at enhver endring vi gjør i textView reflekteres i UITextView objekt i brukergrensesnittet
IBOutlet svak Var textView:.! UITextView
Du vil merke to søkeord følgende kompilatoren direktivet, svak og var. Den svake søkeord er et attributt som brukes for referanser som ikke trenger oppbevaring. Dette er ofte brukt for uttak, siden de blir beholdt av sin Super, utsikten controller syn i denne saken.
Den andre søkeord, var, indikerer at textView er en variabel i motsetning til en konstant. Variabelnavnet er etterfulgt av et kolon og variabelens type.
6. Tale Variabler
Under textView utløp, vi erklære en konstant, synth, og en variabel, myUtterance. Utleid nøkkelord indikerer at synth er deklarert som en konstant. Det betyr at verdien av synth ikke kan endres
la synth = AVSpeechSynthesizer () Var myUtterance = AVSpeechUtterance. (String: "")
synth konstant holder en referanse til en AVSpeechSynthesizer eksempel. Den myUtterance variable holder streng at vi vil konvertere til tale litt senere.
7. Legge til en handling
Knappen i brukergrensesnittet skal utløse en metode som heter TextToSpeech. For å oppnå dette, må vi opprette en handling ved hjelp avIBAction typen kvalifiseringskamp. Som brukerIBAction typen kvalifiseringen, vil metoden dukke opp i Interface Builder som en handling. La oss se hvordan dette fungerer.
Åpne Assistent Editor Hotell og sørge for at XIB filen vises på venstre og ViewController klassen til høyre. Velg knappen i Interface Builder Hotell og kontroll-drag fra knappen til ViewController klasse på høyre, som vist nedenfor.
Xcode vil vise deg en lignende dialog. Denne gangen, derimot, er det tilkoblingstype Handling
. Navn handlingen TextToSpeech, sørg for Hendelses
er satt til Touch Up Inside
, og klikk Koble
.
Som et resultat, Xcode vil skape en funksjon eller metode eller handling for deg som ser ut som den som vises nedenfor. Handlingen startes når brukeren kraner knappen
IBAction func TextToSpeech (avsender: UIButton). {}
func søkeord erklærer en funksjon eller metode. I dette tilfellet er navnet på funksjonen er TextToSpeech. Du vil også merke en avsender parameter av typen UIButton, som henviser til UIButton vi skapt i Interface Builder.
8. Implementering TextToSpeech
Den neste blokk med kode håndterer tekst til tale-konvertering når brukeren kraner knappen
IBAction func TextToSpeech (avsender: UIButton). {MyUtterance = AVSpeechUtterance (string: textView.text) myUtterance .rate = 0,3 synth.speakUtterance (myUtterance)}
Vi først opprette en AVSpeechUtterance eksempel ved passering i teksten i textView objektet i konstruktøren. I neste linje, setter vi kursen eller hastigheten som ytring vil bli talt. Jo lavere rente, vil jo saktere tale være. Til slutt, vi kaller den speakUtterance metoden på AVSpeechSynthesizer eksempel bestått i myUtterance objektet. Dette vil starte tekst til tale
Dette er hva hele den ViewController klassen skulle gjerne
import UIKitimport AVFoundationclass ViewController:.. UIViewController {IBOutlet svak Var textView: UITextView! la synth = AVSpeechSynthesizer () Var myUtterance = AVSpeechUtterance (string: "") overstyring func viewDidLoad () {super.viewDidLoad () //Gjør noe ekstra oppsett etter lasting utsikten, vanligvis fra en spiss. } Overstyring func didReceiveMemoryWarning () {super.didReceiveMemoryWarning () //Kast noen ressurser som kan gjenskapes. }IBAction Func TextToSpeech (avsender: UIButton) {myUtterance = AVSpeechUtterance (string: textView.text) myUtterance.rate = 0,3 synth.speakUtterance (myUtterance)}}
9. Testing i Simulator
Det er på tide å teste vår søknad i iOS Simulator. Trykk Kommando-R
eller trykker på play-knappen øverst til venstre for å kjøre programmet. Test app ved å legge inn en streng i tekstvisning og trykke på knappen nederst.
Konklusjon
I denne opplæringen, har vi lært å implementere tekst til tale på iOS, bruker Interface Builder, lage uttak og handlinger. Jeg oppfordrer deg til å eksperimentere med resultatet og tilpasse app for å gjøre den til din egen. Jeg håper du likte denne opplæringen, og fant den nyttig.