October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

Keep Platform Speech Recognition On-Device in Your First Mobile AI Pull Request

Speech recognition is not on-device by default on iOS or Android. Here is how to request local processing, check availability, and make unavailability visible instead of silently sending audio to a server.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Platform speech recognition does not stay on the phone by default. The generic recognition paths on iOS and Android can send audio to a server, so a privacy requirement only holds if your code asks for local processing, confirms the device can provide it, and stops with a visible message when it cannot. This guide shows how to do that in a cross-platform app, with the iOS and Android steps kept separate. The platform references reviewed for this article are dated October 2026. Service availability depends on OS version, device, language, and installed recognition services, so the checks below run at runtime rather than being assumed at build time.

What the default path does with your audio

On Apple platforms, Apple’s authorization guide describes standard SFSpeechRecognizer processing as capturing speech and sending audio to Apple servers (Asking Permission to Use Speech Recognition). On Android, the SpeechRecognizer reference states that its generic implementation “is likely to stream audio to remote servers to perform speech recognition” (SpeechRecognizer API reference). Neither platform makes local processing the default for a plain recognition request, so your app has to ask for it explicitly.

As an Amazon Associate I earn from qualifying purchases.

iOS: enforce local recognition on the request

Declare the usage description and request authorization

  1. Add the NSSpeechRecognitionUsageDescription key to Info.plist with a sentence that says what the speech is used for. Apple requires this value before the authorization prompt can appear.
  2. Call SFSpeechRecognizer.requestAuthorization and proceed only when the status is .authorized.
  3. Create a recognizer for the locale your feature needs and check its isAvailable property. A recognizer can exist for a locale without being usable at the moment.

Check capability before setting the request flag

Apple documents two properties that work together. supportsOnDeviceRecognition is a Boolean that “indicates whether the speech recognizer can operate without network access” (supportsOnDeviceRecognition). requiresOnDeviceRecognition on the request should be set to true “to prevent an SFSpeechRecognitionRequest from sending audio over the network” (requiresOnDeviceRecognition). The request setting is honored only when the recognizer supports on-device recognition, so the capability check must come first. The following function returns no request when local processing is unavailable, which lets the caller show an unavailable state:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
import Speech

func makeOnDeviceRequest(locale: Locale) -> SFSpeechAudioBufferRecognitionRequest? {
    guard let recognizer = SFSpeechRecognizer(locale: locale),
          recognizer.isAvailable,
          recognizer.supportsOnDeviceRecognition else {
        return nil
    }
    let request = SFSpeechAudioBufferRecognitionRequest()
    request.requiresOnDeviceRecognition = true
    request.shouldReportPartialResults = true
    return request
}

The recognizer must stay alive for the life of the recognition task, and the function above only builds the request. Start the task with the same recognizer instance that passed the capability check.

#1 Best Overall
Sale
Motorola Moto g - 2026 | Unlocked | Made for US 4/128GB | 50MP Camera | Pantone Slipstream, Cellular_Phone
  • Universal unlocked. Compatible with all major U.S. carriers, including Verizon, AT&T, T-Mobile and other prepaid carriers.
  • Super-bright, super-smooth 6.7" display. See your screen clearly even outdoors in sunlight, and enjoy seamless views with a fast-refreshing 120Hz display.*
  • AI-powered camera system. Take stunning photos in any light with the 50MP camera**, look your best with a 32MP selfie cam*****, and capture extreme close-ups.
  • Superfast 5G performance. Unleash your entertainment at 5G speed*** with the MediaTek Dimensity 6300 chipset and up to 12GB of RAM with RAM Boost****.
  • Long-lasting battery + TurboPower charging. Power through day after day with a 5200mAh battery, then get hours of power in just minutes.****

Deployment target and SpeechAnalyzer

The Apple pages reviewed do not establish a minimum iOS version for these two properties in the form shown here. Check the availability annotations in the current Speech framework documentation against your deployment target before you ship. Apple’s authorization guide also distinguishes the SFSpeechRecognizer flow from SpeechAnalyzer transcriber modules, which it says do not send users’ voice audio to Apple servers. The version and availability requirements for SpeechAnalyzer were not established in the pages reviewed, so confirm them in Apple’s current documentation before you plan around it.

Accuracy and sensitive content

Apple’s property documentation warns that on-device requests may be less accurate than server-based ones. Test the locales and vocabulary your users actually speak before you promise a level of quality. Apple’s SFSpeechRecognizer reference also advises against performing recognition on private or sensitive information, including passwords, health data, and financial data. Keeping audio on the device is not a reason to route those inputs through speech recognition.

Rank #2
Sale
Samsung Galaxy A17 5G Smart Phone 128GB US 1 Yr Manufacturer Warranty Black
  • YOUR CONTENT, SUPER SMOOTH: The ultra-clear 6.7" FHD+ Super AMOLED display of Galaxy A17 5G helps bring your content to life, whether you're scrolling through recipes or video chatting with loved ones.¹
  • LIVE FAST. CHARGE FASTER: Focus more on the moment and less on your battery percentage with Galaxy A17 5G. Super Fast Charging powers up your battery so you can get back to life sooner.²
  • MEMORIES MADE PICTURE PERFECT: Capture every angle in stunning clarity, from wide family photos to close-ups of friends, with the triple-lens camera on Galaxy A17 5G.
  • NEED MORE STORAGE? WE HAVE YOU COVERED: With an improved 2TB of expandable storage, Galaxy A17 5G makes it easy to keep cherished photos, videos and important files readily accessible whenever you need them.³
  • BUILT TO LAST: With an improved IP54 rating, Galaxy A17 5G is even more durable than before.⁴ It’s built to resist splashes and dust and comes with a stronger yet slimmer Gorilla Glass Victus front and Glass Fiber Reinforced Polymer back.

Android: use the on-device recognizer factory

Gate on API level 31

The on-device methods, isOnDeviceRecognitionAvailable(context) and createOnDeviceSpeechRecognizer(context), were added in API level 31 (Android 12). If your minSdk is lower, you need a version branch. The reference documents creation as throwing UnsupportedOperationException when the on-device service is unavailable, so treat that case as a normal unavailable state rather than a crash.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Declare the microphone permission

SpeechRecognizer requires RECORD_AUDIO. Declare it in the manifest and request it at runtime before you start listening:

Rank #3
Samsung Galaxy A16 5G 128GB Cell Phone, Unlocked Android Smartphone, Large AMOLED Display, Durable Design, Super Fast Charging, Expandable Storage, US Version, 2025, Blue Black (Renewed)
  • Charger NOT Included, 6.7" Super AMOLED FHD+, 90Hz Refresh Rate, 385 ppi, 800 nits (HBM), 1080x2340px, 5000mAh Battery
  • 128GB, 4GB RAM, microSDXC, Exynos 1330 (5nm), Octa-Core, Mali-G68 MP2 or Mali-G57 MC2 GPU
  • Rear Camera: 50MP, f/1.8 (wide) + 5MP, f/2.2 (ultrawide) + 2MP, f/2.4 (macro), LED flash, panorama, HDR; Front Camera: 13MP, f/2.0, Android 14, up to 6 major Android upgrades, One UI 6.1
  • 3G: HSDPA 850/900/1700(AWS)/1900/2100; 4G LTE: 1/2/3/4/5/7/12/13/14/20/25/26/28/29/30/38/39/40/41/48/66/71, 5G: 2/5/25/41/66/71/77/78 SA/NSA/Sub6/mmWave - Nano-SIM + eSIM
  • US Model – Global Connectivity – Compatible with Most GSM Carriers like T-Mobile, AT&T, MetroPCS, etc. Will Also work with CDMA Carriers Such as Verizon, Straight Talk.
<uses-permission android:name="android.permission.RECORD_AUDIO" />

The reference also documents a manifest <queries> declaration for interacting with a recognition service in apps that target Android 11 (API level 30). Confirm whether your target SDK and integration need it before adding it to every project.

Create, listen, and release

The following function checks availability first, creates the on-device recognizer, registers the listener before sending any command, and returns null when local recognition cannot be used:

Rank #4
Sale
Samsung Galaxy A17 5G Smart Phone 128GB, US 1 Yr Manufacturer Warranty Blue
  • YOUR CONTENT, SUPER SMOOTH: The ultra-clear 6.7" FHD+ Super AMOLED display of Galaxy A17 5G helps bring your content to life, whether you're scrolling through recipes or video chatting with loved ones.¹
  • LIVE FAST. CHARGE FASTER: Focus more on the moment and less on your battery percentage with Galaxy A17 5G. Super Fast Charging powers up your battery so you can get back to life sooner.²
  • MEMORIES MADE PICTURE PERFECT: Capture every angle in stunning clarity, from wide family photos to close-ups of friends, with the triple-lens camera on Galaxy A17 5G.
  • NEED MORE STORAGE? WE HAVE YOU COVERED: With an improved 2TB of expandable storage, Galaxy A17 5G makes it easy to keep cherished photos, videos and important files readily accessible whenever you need them.³
  • BUILT TO LAST: With an improved IP54 rating, Galaxy A17 5G is even more durable than before.⁴ It’s built to resist splashes and dust and comes with a stronger yet slimmer Gorilla Glass Victus front and Glass Fiber Reinforced Polymer back.
import android.content.Context
import android.content.Intent
import android.os.Build
import android.speech.RecognitionListener
import android.speech.RecognizerIntent
import android.speech.SpeechRecognizer

fun startOnDeviceRecognition(context: Context, listener: RecognitionListener): SpeechRecognizer? {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) return null
    if (!SpeechRecognizer.isOnDeviceRecognitionAvailable(context)) return null
    val recognizer = try {
        SpeechRecognizer.createOnDeviceSpeechRecognizer(context)
    } catch (e: UnsupportedOperationException) {
        return null
    }
    recognizer.setRecognitionListener(listener)
    val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
        .putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM)
    recognizer.startListening(intent)
    return recognizer
}

Call the recognizer’s methods on the main thread, as the API requires, and call destroy() when the session ends. Keeping a recognizer instance alive after a session wastes resources and can hold on to the service.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Comparing the two paths

Concern iOS (SFSpeechRecognizer) Android (SpeechRecognizer)
Enforcement mechanism Set requiresOnDeviceRecognition on the request; honored only if the recognizer supports it Create the recognizer with createOnDeviceSpeechRecognizer(context)
Availability check isAvailable on the recognizer for the locale, and supportsOnDeviceRecognition isOnDeviceRecognitionAvailable(context)
Minimum version named in reviewed pages Not stated in the reviewed pages for these properties; check current Apple documentation API level 31 for the on-device methods
Permission and setup Speech authorization and NSSpeechRecognitionUsageDescription RECORD_AUDIO; <queries> for apps targeting API level 30, to be confirmed
Failure signal Recognizer unavailable, or no on-device support, so you build no on-device request isOnDeviceRecognitionAvailable returns false, or creation throws UnsupportedOperationException
Documented trade-off On-device requests may be less accurate (Apple) Not stated in the reviewed Android reference

When on-device recognition is unavailable

Decide the fallback rule before you write the feature, because the platform checks only tell you that local recognition failed. They do not decide what your app should do next. The following sequence keeps the privacy requirement enforceable:

Best Value
Tracfone Motorola Moto G 2025, 64GB, Saphire Blue (Locked to
  • Carrier: This phone is locked to Tracfone, which means this device can only be used on the Tracfone wireless network. Tracfone plan required, activating is easy, just 3 steps.
  • DISPLAY: Immersive viewing on a 6.7-inch super-bright 120Hz display with powerful stereo speakers and Bass Boost for cinematic entertainment.
  • CAMERA SYSTEM: Advanced 50MP Quad Pixel camera captures sharp, detailed photos and videos in any lighting condition
  • PERFORMANCE: Lightning-fast 5G connectivity paired with a powerful processor and RAM Boost for smooth multitasking.
  • BATTERY LIFE: Long-lasting 5000mAh battery with TurboPower charging technology delivers hours of power in minutes.
  1. Run the capability check before any audio is captured.
  2. If the check fails, show a state that names the reason in plain terms, such as an unsupported language or a device that cannot run local recognition.
  3. Do not start a server-based recognition session silently.
  4. If you want a network-backed alternative, ask the user first and state what audio will be sent and to whom.

This sequence follows from the platforms’ explicit support checks and their documented remote processing. It is an implementation choice, not a rule the platforms impose on your interface.

Writing an accurate privacy claim

Your privacy text should describe what the code enforces. The following table separates the claims the code can support from the ones it cannot:

  • Supportable: “Speech is processed on this device when local recognition is available. If it is not available, the feature is disabled and no audio is sent.”
  • Not supportable: “Your voice never leaves your phone,” or “speech recognition is private,” because the claim ignores the unavailable states, the accuracy trade-off, and the content types that should not be spoken into the feature at all.

Limit claims to the locales and devices you actually verified. Platform availability varies, so an unverified language should be described as unavailable rather than assumed to work offline.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.