Skip to content

just-ai/aimybox-ios-sdk

Repository files navigation




Aimybox iOS SDK

Open source voice assistant SDK written in Swift

Twitter Follow

Embed your own intelligent voice assistant into your existing iOS application.

Android version is available here

Key Features

  • Provides ready to use UI components for fast building of your voice assistant app
  • Modular and independent from speech-to-text and text-to-speech vendors
  • Provides ready to use speech-to-text and text-to-speech implementations
  • Works with any NLU providers like Aimylogic
  • Fully customizable and extendable, you can connect any other speech-to-text, text-to-speech and NLU services
  • Open source under Apache 2.0, written in pure Swift
  • Embeddable into any iOS application
  • Voice skills logic and complexity is not limited by any restrictions
  • Can interact with any local device services and local networks

How to start using

Aimybox SDK is available through CocoaPods. To install it, simply add the following line to your Podfile:

  pod 'Aimybox/Core'
  # Specific components for DialogAPI, SpeechToText and TextToSpeech
  pod 'Aimybox/AimyboxDialogAPI'
  pod 'Aimybox/SFSpeechToText'
  pod 'Aimybox/AVTextToSpeech'

List of available components listed below.

Then you need add following in your Info.plist file to describe why your app need microphone and speech recognition permissions.

	<key>NSMicrophoneUsageDescription</key>
	<string>This app use a microphone to record your speech</string>
  
	<key>NSSpeechRecognitionUsageDescription</key>
	<string>This app will use speech recognition</string>

Add following in your ViewController

    var aimybox: Aimybox? = {
        let locale = Locale(identifier: "en")
        
        guard let speechToText = SFSpeechToText(locale: locale) else {
            fatalError("Locale is not supported.")
        }
        guard let textToSpeech = AVTextToSpeech(locale: locale) else {
            fatalError("Locale is not supported.")
        }
        
        let dialogAPI = AimyboxDialogAPI(api_key: "Awesome_API_Key",
                                         unit_key: UIDevice.current.identifierForVendor!.uuidString)
        
        let config = AimyboxBuilder.config(speechToText, textToSpeech, dialogAPI)
        
        return AimyboxBuilder.aimybox(with: config)
    }()

Then call startRecognition() method of Aimybox to start talking with your voice assistant.

Available Components

TextToSpeech

  • SFSpeechToText

Speech recognition component that uses iOS Speech Framework.

Pods installation:

pod 'Aimybox/SFSpeechToText'

  • YandexSpeechToText

Speech recognition component that uses Yandex speech recognition of Yandex.Cloud SpeechKit.

Pods installation:

pod 'Aimybox/YandexSpeechToText'

TextToSpeech

  • AVTextToSpeech

Speech synthesizer component that uses iOS speech synthesis of AVFoundation Framework.

Uses AVSpeechUtterance and AVSpeechSynthesizer for core functionality.

Pods installation:

pod 'Aimybox/AVTextToSpeech'

  • YandexTextToSpeech

Speech synthesizer component that uses Yandex speech synthesis of Yandex.Cloud SpeechKit.

Pods installation:

pod 'Aimybox/YandexTextToSpeech'

DialogAPI

  • AimyboxDialogAPI

DialogAPI component that uses Aimybox HTTP API.

Pods installation:

pod 'Aimybox/AimyboxDialogAPI'

More details

Please refer to the demo voice assistant to see how to use Aimybox library in your project.

Documentation

There is a full Aimybox documentation available here

License

Aimybox is available under the Apache 2.0 license. See the LICENSE file for more info.