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を使用する方法は次の通りです。
- 次の構文を
{PROJECT}/build.gradleファイルに追加します。buildscript { repositories { google() mavenCentral() } } allprojects { repositories { google() mavenCentral() } } - 次の構文を
app/build.gradleファイルに追加します。dependencies { implementation 'com.naver.speech.clientapi:naverspeech-ncp-sdk-android:1.1.8' } - 次のように Android Manifestファイル(AndroidManifest.xml)を設定します。
 
- 
パッケージ名:
manifest要素のpackage属性は NAVERクラウドプラットフォームコンソールで登録した Androidアプリのパッケージ名と同じにします。 - 
権限の設定: ユーザーの音声入力をマイクで録音し、録音されたデータをサーバに送信する必要があります。したがって、
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 *; 
NAVER 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: NAVERクラウドプラットフォームコンソールで登録した iOS Bundle IDと同じ値にします。
 - 権限の設定: ユーザーの音声入力をマイクで録音し、録音されたデータをサーバに送信する必要があります。したがって、
keyを次のように設定します。 
<key>NSMicrophoneUsageDescription<key> <string></string> 
- iOS APIを提供するために Universal binary (Fat binary)形式のフレームワークを提供しています。そのため、Build Settingで Enable Bitcodeオプションは使用できないので、Noに設定してください。
 - NAVER Open APIは iOSバージョン 8以降をサポートします。したがって、Deployment Targetをこれに合わせて設定してください。
 
- クライアントは準備、録音、中間結果の出力、終点の抽出、最終結果の出力といった一連のイベントの流れを行います。
 - アプリケーション開発者は、これらのイベントが発生したときに目的の動作を実行するように
NSKRecognizerDelegateプロトコルを実装します。 
APIの詳細は、NAVER Speech文書をご参照ください。
UX関連の考慮事項
通常、ユーザーは音声認識ボタンを押すとすぐに発話を始めようとする傾向があります。しかし、音声認識を開始するrecognize()メソッドを呼び出すと、音声認識のためのメモリの割り当て、マイクリソースの割り当て、音声認識サーバへの接続と認証などの準備を行う必要があるため、ユーザーの発話の一部が欠落する恐れがあります。そのため、アプリはすべての準備が完了した後、ユーザーに発話してもよいという情報を伝える必要があります。この方法は次のように処理することができます。
- 準備がすべて完了したら、
onReadycallbackメソッドが呼び出されます。 onReadycallbackメソッドが呼び出されるまで準備中です。のようなメッセージを表示するか、準備中であることを示す UIを表示する必要があります。onReadycallbackメソッドが呼び出されると話してください。のようなメッセージを表示するか、使用可能であることを示す UIを表示します。
- (Android API) 
SpeechRecognitionListenerのonReady、onRecordなどの callbackメソッドはWorker Threadで呼び出されるメソッドであり、ハンドラー(Handler)に登録して使用します。 - (iOS API) 
cancel()メソッドを呼び出すと、呼び出した時点からデリゲーション(Delegation)メソッドは呼び出されません。そのため、音声認識が終わった時に処理する作業はcancel()メソッドの呼び出し後に別途行う必要があります。 
レスポンスステータスコード
CLOVA Speech Recognition(CSR) APIで共通して使用されるレスポンスステータスコードの詳細は、CLOVA Speech Recognition (CSR)の共通レスポンスステータスコードをご参照ください。