NSKRecognizer

@interface NSKRecognizer : NSObject

NSKRecognizer는 네이버 음성인식 서비스를 사용할 수 있도록 client 역할을 제공합니다. 네이버 음성인식은 server와 client간의 통신으로 구성되어 있고, client는 음성을 입력 받아 server로 전송하고, server로부터 인식 결과를 받는 역할을 합니다. 따라서 network 연결과 앱에서 마이크에 대한 접근 허용이 필요합니다. 음성인식 수행 과정은 아래의 state diagram과 같습니다.

State diagram

State가 바뀔 때 마다 NSKRecognizerDelegate protocol의 각 state에 해당하는 messege를 받습니다.

  • NSKRecognizerDelegate protocol을 구현한 delegate

    Declaration

    Objective-C

    @property (readwrite, nonatomic) id<NSKRecognizerDelegate> delegate;

    Swift

    weak var delegate: NSKRecognizerDelegate! { get set }
  • 음성인식기의 동작 상태

    Declaration

    Objective-C

    @property (readonly, getter=isRunning, nonatomic) BOOL running;

    Swift

    var isRunning: Bool { get }
  • See

    NSKRecognizerConfiguration

    Declaration

    Objective-C

    - (instancetype)initWithConfiguration:
        (NSKRecognizerConfiguration *)aConfiguration;

    Swift

    init!(configuration aConfiguration: NSKRecognizerConfiguration!)

    Parameters

    aConfiguration

    NSKRecognizerConfiguration 음성인식기 설정값

    Return Value

    음성인식기 instance

  • 음성인식기를 동작시킵니다. 해당 method가 호출되면 background로 audio 자원을 할당하고 network를 연결합니다. 모든 준비가 완료되면 음성인식을 수행합니다.

    See

    NSKRecognizerLanguageCode

    Declaration

    Objective-C

    - (BOOL)startWithLanguageCode:(id)aLanguageCode;

    Swift

    func start(with aLanguageCode: NSKRecognizerLanguageCode) -> Bool

    Parameters

    aLanguageCode

    NSKRecognizerLanguageCode 인식하고자 하는 언어

    Return Value

    성공유무

  • 음성인식기의 동작을 중지시킵니다. 음성인식 서버로 부터 최종 결과를 받은 후 종료됩니다. 네트워크 환경에 따라 최종 결과 수신 및 종료가 지연될 수 있습니다.

    Declaration

    Objective-C

    - (BOOL)stop;

    Swift

    func stop() -> Bool

    Return Value

    성공유무

  • 음성인식기의 동작을 취소합니다. 즉시 음성인식의 모든 동작을 정지시키며 결과를 받지 않습니다. - warning: 취소에 대한 별도의 delegate method가 호출되지 않습니다.

    Declaration

    Objective-C

    - (BOOL)cancel;

    Swift

    func cancel() -> Bool

    Return Value

    성공유무

  • 음성인식기의 EPD(End Point Detection)Type을 선택할 수 있습니다. - warning: 설정의 EPDType이 hybrid인 경우에만 정상동작 합니다.

    Declaration

    Objective-C

    - (BOOL)setEPDType:(id)aEPDType;

    Swift

    func setEPDType(_ aEPDType: NSKEPDType) -> Bool

    Return Value

    성공유무