--- title: "Mobile SDK" slug: "ai-naver-clovaspeechrecognition-mobilesdk" updated: 2026-07-23T09:04:26Z published: 2026-07-23T09:04:26Z canonical: "api.ncloud-docs.com/ai-naver-clovaspeechrecognition-mobilesdk" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Mobile SDK Classic/VPC 환경에서 이용 가능합니다. 음성 인식에 사용할 언어와 MP3, AAC, AC3, OGG, FLAC, WAV 형식의 음성 데이터를 입력받아 텍스트로 변환하는 API를 Android와 iOS SDK 형태로 제공합니다. ## 사전 준비사항 Mobile SDK의 사전 준비사항에 대한 설명은 [CLOVA Speech Recognition (CSR) 공통 설정](/docs/ai-naver-clovaspeechrecognition#CLOVASpeechRecognition%EA%B3%B5%ED%86%B5%EC%84%A4%EC%A0%95)을 참조해 주십시오. ## API 사용 CSR API는 Android용과 iOS용 SDK를 통해 제공됩니다. 여기에서는 각 플랫폼별 CSR API를 사용하는 방법에 대해 설명합니다. ## 요청 ### Android API Android API를 사용하는 방법은 다음과 같습니다. 1. 다음 구문을 `{PROJECT}/build.gradle` 파일에 추가해 주십시오. ``` buildscript { repositories { google() mavenCentral() } } allprojects { repositories { google() mavenCentral() } } ``` 2. 다음 구문을 `app/build.gradle` 파일에 추가해 주십시오. ``` dependencies { implementation 'com.naver.speech.clientapi:naverspeech-ncp-sdk-android:1.2.0' } ``` 3. 다음과 같이 Android Manifest 파일(AndroidManifest.xml)을 설정해 주십시오. - 패키지 이름: `manifest` 요소의 `package` 속성 값이 네이버 클라우드 플랫폼 콘솔에서 등록한 안드로이드 앱 패키지 이름과 같아야 합니다. - 권한 설정: 사용자의 음성 입력을 마이크를 통해 녹음해야 하고 녹음된 데이터를 서버로 전송해야 합니다. 따라서 `android.permission.INTERNET`과 `android.permission.RECORD_AUDIO`에 대한 권한을 반드시 설정해 주십시오. ``` ``` 1. (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](https://github.com/NaverCloudPlatform/naverspeech-sdk-android)를 참조해 주십시오. ### iOS API iOS API를 사용하는 방법은 다음과 같습니다. 1. [iOS용 예제](https://github.com/NaverCloudPlatform/naverspeech-sdk-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 ``` 2. OS 예제에서 `framework/NaverSpeech.framework` 디렉터리를 개발하는 앱의 **Embedded Binaries**에 추가해 주십시오. 3. 다음과 같이 iOS Bundle Identifier를 설정해 주십시오. ``` ``` - Bundle Identifier: 네이버 클라우드 플랫폼 콘솔에서 등록한 **iOS Bundle ID**와 같아야 합니다. - 권한 설정: 사용자의 음성 입력을 마이크를 통해 녹음해야 하고 녹음된 데이터를 서버로 전송해야 합니다. 따라서, `key` 값을 다음과 같이 설정해 주십시오. 참고 - iOS API를 제공하기 위해 Universal binary (Fat binary) 형태의 프레임워크를 제공하고 있습니다. 따라서 **Build Setting**에서 **Enable Bitcode** 옵션을 사용할 수 없으므로 **No**로 설정해 주십시오. - 네이버 Open API는 iOS 버전 8 이상을 지원합니다. 따라서 **Deployment Target** 값을 이에 맞게 설정해 주십시오. - 클라이언트는 **준비**, **녹음**, **중간결과 출력**, **끝점 추출**, **최종결과 출력**과 같은 일련의 이벤트 흐름을 수행합니다. - 애플리케이션 개발자는 해당 이벤트가 발생할 때 원하는 동작을 수행하도록 `NSKRecognizerDelegate` 프로토콜을 구현합니다. 참고 API에 대한 자세한 설명은 [NAVER Speech 문서](http://naver.github.io/naverspeech-sdk-ios/Classes/NSKRecognizer.html)를 참조해 주십시오. ## UX 고려사항 일반적으로 사용자는 음성 인식 버튼을 누르자마자 발화를 시작하려는 경향이 있습니다. 하지만 음성 인식을 시작하는 `recognize()` 메서드를 호출하면 음성 인식을 위한 메모리 할당, 마이크 자원 할당, 음성 인식 서버 접속 및 인증 등의 준비 과정을 수행해야 하기 때문에 사용자의 발화 일부가 누락될 수 있습니다. 따라서, 앱은 모든 준비가 완료된 후 사용자에게 발화해도 좋다는 정보를 전달해야 합니다. 이 방법은 다음과 같이 처리할 수 있습니다. - 모든 준비가 완료되면 `onReady` callback 메서드가 호출됩니다. - `onReady` callback 메서드가 호출되기 전까지 `준비 중입니다.`와 같은 메시지를 표시하거나 준비 중임을 나타내는 UI 표시를 해야 합니다. - `onReady` callback 메서드가 호출되면 `이야기해주세요.`와 같은 메시지를 표시하거나 사용 가능함을 나타내는 UI를 표시해야 합니다. 참고 - (Android API) `SpeechRecognitionListener`의 `onReady`, `onRecord` 등의 callback 메서드는 [Worker Thread](https://developer.android.com/guide/components/processes-and-threads.html)에서 호출되는 메서드이며, 핸들러(Handler)에 등록하여 사용해야 합니다. - (iOS API) `cancel()` 메서드를 호출하면 호출한 시점부터 델리게이션(Delegation) 메서드들이 호출되지 않습니다. 따라서, 음성 인식이 끝났을 때 처리해야 하는 작업들은 `cancel()` 메서드 호출 이후에 따로 수행해야 합니다. ### 응답 상태 코드 CLOVA Speech Recognition (CSR) API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [CLOVA Speech Recognition (CSR) 공통 응답 상태 코드](/docs/ai-naver-clovaspeechrecognition#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오.