Dunfey · Hotel WWDC as data, est. 1983
Front desk everything
Years
Topics

2020 Accessibility & Inclusion

WWDC20 · 9 min · Accessibility & Inclusion

Create a seamless speech experience in your apps

Augment your app’s accessibility experience with speech synthesis: Discover the best times and places to add speech APIs so that everyone who uses your app can benefit. Learn how to use AVSpeechSynthesizer to complement assistive technologies like VoiceOver, and when to implement alternative APIs. And we’ll show you how to route audio to the appropriate source and create apps that integrate speech seamlessly for all who need or want it. To get the most out of this session, you should be familiar with AVFoundation and the basics of speech synthesis. For an overview, watch “AVSpeechSynthesizer: Making iOS Talk.”

Watch at developer.apple.com ↗

Transcript all transcripts

Code shown on screen · 7 snippets

Post an Announcement to the Running Assistive Technology swift · at 1:25 ↗
UIAccessibility.post(notification: .announcement, argument: "Hello World")
Getting Started with AVSpeechSynthesizer swift · at 2:55 ↗
self.synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "Hello World")
self.synthesizer.speak(utterance)
Respecting the Currently Running Assistive Technology's Speech Settings swift · at 4:08 ↗
self.synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "Hello World")
utterance.prefersAssistiveTechnologySettings = true
self.synthesizer.speak(utterance)
Customizing Speech - Choosing a Voice swift · at 5:42 ↗
let utterance = AVSpeechUtterance(string: "Hello World")

// Choose a voice using a language code
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
        
// Choose a voice using an identifier
utterance.voice = AVSpeechSynthesisVoice(identifier: AVSpeechSynthesisVoiceIdentifierAlex)
        
// Get a list of installed voices
let voices = AVSpeechSynthesisVoice.speechVoices()
Customizing Speech - Pitch and Rate swift · at 6:16 ↗
let utterance = AVSpeechUtterance(string: "Hello World")

// Choose a rate between 0 and 1, 0.5 is the default rate
utterance.rate = 0.75
  
// Choose a pitch multiplier between 0.5 and 2, 1 is the default multiplier
utterance.pitchMultiplier = 1.5

// Choose a volume between 0 and 1, 1 is the default value
utterance.volume = 0.5
Mix Speech With an Outgoing Call swift · at 6:34 ↗
self.synthesizer = AVSpeechSynthesizer()
self.synthesizer.mixToTelephonyUplink = true
Opting Speech Out of Application's Audio Session swift · at 7:02 ↗
self.synthesizer = AVSpeechSynthesizer()
self.synthesizer.usesApplicationAudioSession = false

Resources