Skip to content

iOS 10 SpeechKit framework made easy, πŸŽ™to πŸ”  && πŸ“Ό to πŸ” 

License

Notifications You must be signed in to change notification settings

ZaidPathan/SpeechKitManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SpeechKitManager

[![CI Status](http://img.shields.io/travis/Zaid Pathan/SpeechKitManager.svg?style=flat)](https://travis-ci.org/Zaid Pathan/SpeechKitManager) Version License Platform

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

XCode : 8.0 +

iOS : 10.0 +

Swift : 3.0 +

Device : Real iOS device required

Installation

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

pod "SpeechKitManager"

Usage

Note : Add NSMicrophoneUsageDescription(For Live Speech to Text only) and NSSpeechRecognitionUsageDescription to info.plist.

Initialize SpeechKitManager and your audio file path and URL
import SpeechKitManager

fileprivate var speechKitManager:SpeechKitManager?
let audioPath = Bundle.main.path(forResource: "testAudio", ofType: "m4a")   //For audio file to text
var audioURL:URL?                                                           //For audio file to text

override func viewDidLoad() {
    super.viewDidLoad()
    speechKitManager = SpeechKitManager()
}
Authorize Speech Recognition and handle it.
speechKitManager?.requestSpeechRecognizerAuth { (authStatus) in
    /*
    The callback may not be called on the main thread. Add an
    operation to the main queue to update the record button's state.
    */
    OperationQueue.main.addOperation {
        switch authStatus {
            case .authorized:
                self.recognizeAudio()
                print("requestSpeechRecognizerAuth authorized")
            case .denied:
                print("requestSpeechRecognizerAuth denied")
            case .restricted:
                print("requestSpeechRecognizerAuth restricted")
            case .notDetermined:
                print("requestSpeechRecognizerAuth notDetermined")
            }
        }
    }

1. Audio file to Text

Recognize Audio
fileprivate func recognizeAudio(){
    if let path = self.audioPath{
        self.speechKitManager?.recognizeAudio(atURL: URL(fileURLWithPath: path), resultHandler: { (result, error) in
            if let result = result{
                //Audio to Text fall here
                debugPrint(result.bestTranscription.formattedString)
            }else if let error = error{
                debugPrint(error.localizedDescription)
            }
        })
    }else{
        debugPrint("no path found")
    }
}

2. Live Speech to Text

Request Microphone access and handle it.
fileprivate func authorizeMicAccess(){
    speechKitManager?.requestMicAuth({ (granted) in
        if granted{
        //Mic access granted start recognition
        self.recognize()
        }else{
            debugPrint("Microphone permission required")
        }
    })
}
Recognize live speech. πŸ“’
fileprivate func recognize(){
    speechKitManager?.record(resultHandler: { (result, error) in
        var isFinal = false

        if let result = result {
            //User speech will fall here to text
            debugPrint(result.bestTranscription.formattedString)
            isFinal = result.isFinal
        }

        if error != nil || isFinal {
            self.speechKitManager?.stop()
        }
    })
}

Awesome πŸ™Œ, look at the demo project - everything explained here is implemented in that.

Author

Zaid Pathan, Zaidkhanintel@gmail.com

License

SpeechKitManager is available under the MIT license. See the LICENSE file for more info.

About

iOS 10 SpeechKit framework made easy, πŸŽ™to πŸ”  && πŸ“Ό to πŸ” 

Resources

License

Stars

Watchers

Forks

Packages

No packages published