- 인쇄
- PDF
Mobile SDK
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
음성 인식에 사용할 언어와 MP3, AAC, AC3, OGG, FLAC, WAV 형식의 음성 데이터를 입력받아 텍스트로 변환하는 API를 Android와 iOS SDK 형태로 제공합니다.
사전 준비사항
Mobile SDK의 사전 준비사항에 대한 설명은 CLOVA Speech Recognition (CSR) 공통 설정을 참조해 주십시오.
API 사용
CSR API는 Android용과 iOS용 SDK를 통해 제공됩니다. 여기에서는 각 플랫폼별 CSR API를 사용하는 방법에 대해 설명합니다.
요청
Android API
Android API를 사용하는 방법은 다음과 같습니다.
다음 구문을
app/build.gradle
파일에 추가해 주십시오.repositories { jcenter() } dependencies { compile 'com.naver.speech.clientapi:naverspeech-ncp-sdk-android:1.1.6'
다음과 같이 Android Manifest 파일(AndroidManifest.xml)을 설정해 주십시오.
패키지 이름:
manifest
요소의package
속성 값이 네이버 클라우드 플랫폼 콘솔에서 등록한 안드로이드 앱 패키지 이름과 같아야 합니다.권한 설정: 사용자의 음성 입력을 마이크를 통해 녹음해야 하고 녹음된 데이터를 서버로 전송해야 합니다. 따라서
android.permission.INTERNET
과android.permission.RECORD_AUDIO
에 대한 권한을 반드시 설정해 주십시오.<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.naver.naverspeech.client" android:versionCode="1" android:versionName="1.0"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- (Optional) proguard-rules.pro 파일에 다음 코드를 추가해 주십시오.
이 코드는 앱을 보다 가볍고 안전하게 구동합니다.
-keep class com.naver.speech.clientapi.SpeechRecognizer { protected private *;
네이버 Open API는 Android SDK 버전 10 이상을 지원합니다. 따라서 build.gradle 파일의 minSdkVersion
값을 이에 맞게 설정해야 합니다.
- 클라이언트는 준비, 녹음, 중간결과 출력, 끝점 추출, 최종결과 출력과 같은 일련의 이벤트 흐름을 수행합니다.
- 애플리케이션 개발자는
SpeechRecognitioinListener
인터페이스를 상속받아 해당 이벤트가 발생할 때 처리할 동작을 구현합니다.
API에 대한 자세한 설명은https://github.com/NaverCloudPlatform/naverspeech-sdk-android를 참조해 주십시오.
iOS API
iOS API를 사용하는 방법은 다음과 같습니다.
iOS용 예제를 복제(clone)하거나 Zip 파일로 다운로드하여 압축을 해제해 주십시오.
git clone https://github.com/NaverCloudPlatform/naverspeech-sdk-ios.git 또는 wget https://github.com/NaverCloudPlatform/naverspeech-sdk-ios/archive/ncp.zip unzip ncp.zip
OS 예제에서
framework/NaverSpeech.framework
디렉터리를 개발하는 앱의 Embedded Binaries에 추가해 주십시오.다음과 같이 iOS Bundle Identifier를 설정해 주십시오.
- Bundle Identifier: 네이버 클라우드 플랫폼 콘솔에서 등록한 iOS Bundle ID와 같아야 합니다.
- 권한 설정: 사용자의 음성 입력을 마이크를 통해 녹음해야 하고 녹음된 데이터를 서버로 전송해야 합니다. 따라서,
key
값을 다음과 같이 설정해 주십시오.
<key>NSMicrophoneUsageDescription<key> <string></string>
- iOS API를 제공하기 위해 Universal binary (Fat binary) 형태의 프레임워크를 제공하고 있습니다. 따라서 Build Setting에서 Enable Bitcode 옵션을 사용할 수 없으므로 No로 설정해 주십시오.
- 네이버 Open API는 iOS 버전 8 이상을 지원합니다. 따라서 Deployment Target 값을 이에 맞게 설정해 주십시오.
- 클라이언트는 준비, 녹음, 중간결과 출력, 끝점 추출, 최종결과 출력과 같은 일련의 이벤트 흐름을 수행합니다.
- 애플리케이션 개발자는 해당 이벤트가 발생할 때 원하는 동작을 수행하도록
NSKRecognizerDelegate
프로토콜을 구현합니다.
API에 대한 자세한 설명은 NAVER Speech 문서를 참조해 주십시오.
UX 고려사항
일반적으로 사용자는 음성 인식 버튼을 누르자마자 발화를 시작하려는 경향이 있습니다. 하지만 음성 인식을 시작하는 recognize()
메서드를 호출하면 음성 인식을 위한 메모리 할당, 마이크 자원 할당, 음성 인식 서버 접속 및 인증 등의 준비 과정을 수행해야 하기 때문에 사용자의 발화 일부가 누락될 수 있습니다. 따라서, 앱은 모든 준비가 완료된 후 사용자에게 발화해도 좋다는 정보를 전달해야 합니다. 이 방법은 다음과 같이 처리할 수 있습니다.
- 모든 준비가 완료되면
onReady
callback 메서드가 호출됩니다. onReady
callback 메서드가 호출되기 전까지준비 중입니다.
와 같은 메시지를 표시하거나 준비 중임을 나타내는 UI 표시를 해야 합니다.onReady
callback 메서드가 호출되면이야기해주세요.
와 같은 메시지를 표시하거나 사용 가능함을 나타내는 UI를 표시해야 합니다.
- (Android API)
SpeechRecognitionListener
의onReady
,onRecord
등의 callback 메서드는 Worker Thread에서 호출되는 메서드이며, 핸들러(Handler)에 등록하여 사용해야 합니다. - (iOS API)
cancel()
메서드를 호출하면 호출한 시점부터 델리게이션(Delegation) 메서드들이 호출되지 않습니다. 따라서, 음성 인식이 끝났을 때 처리해야 하는 작업들은cancel()
메서드 호출 이후에 따로 수행해야 합니다.
응답 상태 코드
CLOVA Speech Recognition (CSR) API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 CLOVA Speech Recognition (CSR) 공통 응답 상태 코드를 참조해 주십시오.