Skip to content
Spokestack speech recognition pipeline for iOS
Swift Objective-C Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Spokestack iOS

Spokestack provides an extensible speech recognition pipeline for the iOS platform. It includes a variety of built-in speech processors for Voice Activity Detection (VAD), wakeword activation, and Automatic Speech Recognition (ASR).

Table of Contents


  • Voice activity detection
  • Wakeword activation with three different models
  • Simplified Automated Speech Recognition interface
  • Speech pipeline seamlessly integrates VAD-triggered wakeword detection using on-device machine learning models with transcribing utterances using platform Automated Speech Recognition.


CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate Spokestack into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'Spokestack-iOS'


Configure Wakeword-activated Automated Speech Recognition

import Spokestack
// assume that self implements the SpeechEventListener and PipelineDelegate protocols
let pipeline = SpeechPipeline(SpeechProcessors.appleSpeech.processor,
                              speechConfiguration: SpeechConfiguration(),
                              speechDelegate: self,
                              wakewordService: SpeechProcessors.appleWakeword.processor,
                              pipelineDelegate: self)

This example creates a speech recognition pipeline using a wakeword detector that is triggered by VAD, which in turn activates an ASR, returning the resulting utterance to the SpeechEventListener event listener (self in this example).

See SpeechPipeline and SpeechConfiguration for further configuration documentation.

Reference implementation

The SpokestackFrameworkExample project contains reference implementations for how to use the Spokestack library, along with runnable examples of the wakeword and ASR components. Each component has a corresponding screen from the main screen, and can be started, stopped, or synthesized, as appropriate. The component screens have full debug tracing enabled, so the system control logic and debug events will appear in the XCode Console.


A build error similar to Code Sign error: No unexpired provisioning profiles found that contain any of the keychain's signing certificates will occur if the bundle identifier is not changed from io.Spokestack.SpokestackFrameworkExample, which is tied to the Spokestack organization.

API Reference

API reference is available on Github.



  1. Ensure that CocoaPods has been installed: gem install cocoapods (not via brew).
  2. Ensure that you are registered in CocoaPods: pod trunk register YOUR_EMAIL --description='release YOUR_PODSPEC_VERSION'


  1. Increment the podspec version in Spokestack-iOS.podspec
  2. git commit -a -m 'YOUR_COMMIT_MESSAGE' && git tag YOUR_PODSPEC_VERSION && git push --origin
  3. pod spec lint --use-libraries --allow-warnings --use-modular-headers, which should pass all checks
  4. pod trunk push --use-libraries --allow-warnings --use-modular-headers



Copyright 2018 Pylon, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

You can’t perform that action at this time.